X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/784f914b1e4b1c62d6657e86397c2e83bcee4295..febc815b2c9d85be5717da9e8d164bd2daa97e31:/wp-admin/options-permalink.php diff --git a/wp-admin/options-permalink.php b/wp-admin/options-permalink.php index 6fab4d21..b6c52c51 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'; @@ -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.') ?>