X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/784f914b1e4b1c62d6657e86397c2e83bcee4295..refs/heads/pristine:/wp-admin/options-permalink.php diff --git a/wp-admin/options-permalink.php b/wp-admin/options-permalink.php index 6fab4d21..95c1a3e0 100644 --- a/wp-admin/options-permalink.php +++ b/wp-admin/options-permalink.php @@ -10,7 +10,7 @@ require_once( dirname( __FILE__ ) . '/admin.php' ); if ( ! current_user_can( 'manage_options' ) ) - wp_die( __( 'You do not have sufficient permissions to manage options for this site.' ) ); + wp_die( __( 'Sorry, you are not allowed to manage options for this site.' ) ); $title = __('Permalink Settings'); $parent_file = 'options-general.php'; @@ -41,9 +41,9 @@ get_current_screen()->add_help_tab( array( get_current_screen()->set_help_sidebar( '

' . __('For more information:') . '

' . - '

' . __('Documentation on Permalinks Settings') . '

' . - '

' . __('Documentation on Using Permalinks') . '

' . - '

' . __('Support Forums') . '

' + '

' . __('Documentation on Permalinks Settings') . '

' . + '

' . __('Documentation on Using Permalinks') . '

' . + '

' . __('Support Forums') . '

' ); add_filter('admin_head', 'options_permalink_add_js'); @@ -66,6 +66,30 @@ if ( is_multisite() && ! is_subdomain_install() && is_main_site() && 0 === strpo $blog_prefix = '/blog'; } +$category_base = get_option( 'category_base' ); +$tag_base = get_option( 'tag_base' ); +$update_required = false; + +if ( $iis7_permalinks ) { + if ( ( ! file_exists($home_path . 'web.config') && win_is_writable($home_path) ) || win_is_writable($home_path . 'web.config') ) + $writable = true; + else + $writable = false; +} elseif ( $is_nginx ) { + $writable = false; +} else { + if ( ( ! file_exists( $home_path . '.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path . '.htaccess' ) ) { + $writable = true; + } else { + $writable = false; + $existing_rules = array_filter( extract_from_markers( $home_path . '.htaccess', 'WordPress' ) ); + $new_rules = array_filter( explode( "\n", $wp_rewrite->mod_rewrite_rules() ) ); + $update_required = ( $new_rules !== $existing_rules ); + } +} + +$using_index_permalinks = $wp_rewrite->using_index_permalinks(); + if ( isset($_POST['permalink_structure']) || isset($_POST['category_base']) ) { check_admin_referer('update-permalink'); @@ -82,6 +106,9 @@ if ( isset($_POST['permalink_structure']) || isset($_POST['category_base']) ) { else $permalink_structure = $blog_prefix . $permalink_structure; } + + $permalink_structure = sanitize_option( 'permalink_structure', $permalink_structure ); + $wp_rewrite->set_permalink_structure( $permalink_structure ); } @@ -99,68 +126,32 @@ if ( isset($_POST['permalink_structure']) || isset($_POST['category_base']) ) { $wp_rewrite->set_tag_base( $tag_base ); } - wp_redirect( admin_url( 'options-permalink.php?settings-updated=true' ) ); - exit; -} + $message = __( 'Permalink structure updated.' ); -$category_base = get_option( 'category_base' ); -$tag_base = get_option( 'tag_base' ); -$update_required = false; + if ( $iis7_permalinks ) { + if ( $permalink_structure && ! $using_index_permalinks && ! $writable ) { + $message = __( 'You should update your web.config now.' ); + } elseif ( $permalink_structure && ! $using_index_permalinks && $writable ) { + $message = __( 'Permalink structure updated. Remove write access on web.config file now!' ); + } + } elseif ( ! $is_nginx && $permalink_structure && ! $using_index_permalinks && ! $writable && $update_required ) { + $message = __( 'You should update your .htaccess now.' ); + } -if ( $iis7_permalinks ) { - if ( ( ! file_exists($home_path . 'web.config') && win_is_writable($home_path) ) || win_is_writable($home_path . 'web.config') ) - $writable = true; - else - $writable = false; -} elseif ( $is_nginx ) { - $writable = false; -} else { - if ( ( ! file_exists( $home_path . '.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path . '.htaccess' ) ) { - $writable = true; - } else { - $writable = false; - $existing_rules = array_filter( extract_from_markers( $home_path . '.htaccess', 'WordPress' ) ); - $new_rules = array_filter( explode( "\n", $wp_rewrite->mod_rewrite_rules() ) ); - $update_required = ( $new_rules !== $existing_rules ); + if ( ! get_settings_errors() ) { + add_settings_error( 'general', 'settings_updated', $message, 'updated' ); } -} -if ( $wp_rewrite->using_index_permalinks() ) - $usingpi = true; -else - $usingpi = false; + set_transient( 'settings_errors', get_settings_errors(), 30 ); + + wp_redirect( admin_url( 'options-permalink.php?settings-updated=true' ) ); + exit; +} flush_rewrite_rules(); require( ABSPATH . 'wp-admin/admin-header.php' ); - -if ( ! empty( $_GET['settings-updated'] ) ) : ?> -

-

- -

@@ -242,7 +233,7 @@ printf( __( 'If you like, you may enter custom structures for your category and

web.config file were writable, we could do this automatically, but it isn’t so this is the url rewrite rule you should have in your web.config file. Click in the field and press CTRL + a to select all. Then insert this rule inside of the /<configuration>/<system.webServer>/<rewrite>/<rules> element in web.config file.') ?>

@@ -262,7 +253,7 @@ printf( __( 'If you like, you may enter custom structures for your category and

Documentation on Nginx configuration.' ); ?>

+ if ( $permalink_structure && ! $using_index_permalinks && ! $writable && $update_required ) : ?>

.htaccess file were writable, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your .htaccess file. Click in the field and press CTRL + a to select all.') ?>