Wordpress 4.6
[autoinstalls/wordpress.git] / wp-admin / options-permalink.php
index 6fab4d21439e89c3e2114a9cd9c7a5dc04202ac8..b6c52c517afd055aa8041810fdd31e85b671f5ee 100644 (file)
@@ -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'] ) ) : ?>
-<div id="message" class="updated notice is-dismissible"><p><?php
-if ( ! is_multisite() ) {
-       if ( $iis7_permalinks ) {
-               if ( $permalink_structure && ! $usingpi && ! $writable ) {
-                       _e('You should update your web.config now.');
-               } elseif ( $permalink_structure && ! $usingpi && $writable ) {
-                       _e('Permalink structure updated. Remove write access on web.config file now!');
-               } else {
-                       _e('Permalink structure updated.');
-               }
-       } elseif ( $is_nginx ) {
-               _e('Permalink structure updated.');
-       } else {
-               if ( $permalink_structure && ! $usingpi && ! $writable && $update_required ) {
-                       _e('You should update your .htaccess now.');
-               } else {
-                       _e('Permalink structure updated.');
-               }
-       }
-} else {
-       _e('Permalink structure updated.');
-}
 ?>
-</p></div>
-<?php endif; ?>
-
 <div class="wrap">
 <h1><?php echo esc_html( $title ); ?></h1>
 
@@ -242,7 +233,7 @@ printf( __( 'If you like, you may enter custom structures for your category and
   </form>
 <?php if ( !is_multisite() ) { ?>
 <?php if ( $iis7_permalinks ) :
-       if ( isset($_POST['submit']) && $permalink_structure && ! $usingpi && ! $writable ) :
+       if ( isset($_POST['submit']) && $permalink_structure && ! $using_index_permalinks && ! $writable ) :
                if ( file_exists($home_path . 'web.config') ) : ?>
 <p><?php _e('If your <code>web.config</code> file were <a href="https://codex.wordpress.org/Changing_File_Permissions">writable</a>, we could do this automatically, but it isn&#8217;t so this is the url rewrite rule you should have in your <code>web.config</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all. Then insert this rule inside of the <code>/&lt;configuration&gt;/&lt;system.webServer&gt;/&lt;rewrite&gt;/&lt;rules&gt;</code> element in <code>web.config</code> file.') ?></p>
 <form action="options-permalink.php" method="post">
@@ -262,7 +253,7 @@ printf( __( 'If you like, you may enter custom structures for your category and
 <?php elseif ( $is_nginx ) : ?>
        <p><?php _e( '<a href="https://codex.wordpress.org/Nginx">Documentation on Nginx configuration</a>.' ); ?></p>
 <?php else:
-       if ( $permalink_structure && ! $usingpi && ! $writable && $update_required ) : ?>
+       if ( $permalink_structure && ! $using_index_permalinks && ! $writable && $update_required ) : ?>
 <p><?php _e('If your <code>.htaccess</code> file were <a href="https://codex.wordpress.org/Changing_File_Permissions">writable</a>, we could do this automatically, but it isn&#8217;t so these are the mod_rewrite rules you should have in your <code>.htaccess</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all.') ?></p>
 <form action="options-permalink.php" method="post">
 <?php wp_nonce_field('update-permalink') ?>