WordPress 4.3
[autoinstalls/wordpress.git] / wp-admin / options-permalink.php
index 738a0c3f8f6142efdf5a9750ebd81615c2bd06b4..b1f84cc4ac4e9e2ab1e69fbcabb46d00fd58f5da 100644 (file)
@@ -41,9 +41,9 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
        '<p><strong>' . __('For more information:') . '</strong></p>' .
-       '<p>' . __('<a href="http://codex.wordpress.org/Settings_Permalinks_Screen" target="_blank">Documentation on Permalinks Settings</a>') . '</p>' .
-       '<p>' . __('<a href="http://codex.wordpress.org/Using_Permalinks" target="_blank">Documentation on Using Permalinks</a>') . '</p>' .
-       '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+       '<p>' . __('<a href="https://codex.wordpress.org/Settings_Permalinks_Screen" target="_blank">Documentation on Permalinks Settings</a>') . '</p>' .
+       '<p>' . __('<a href="https://codex.wordpress.org/Using_Permalinks" target="_blank">Documentation on Using Permalinks</a>') . '</p>' .
+       '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
 /**
@@ -54,7 +54,6 @@ get_current_screen()->set_help_sidebar(
 function options_permalink_add_js() {
        ?>
 <script type="text/javascript">
-//<![CDATA[
 jQuery(document).ready(function() {
        jQuery('.permalink-structure input:radio').change(function() {
                if ( 'custom' == this.value )
@@ -65,7 +64,6 @@ jQuery(document).ready(function() {
                jQuery("#custom_selection").attr('checked', 'checked');
        });
 });
-//]]>
 </script>
 <?php
 }
@@ -117,9 +115,10 @@ if ( isset($_POST['permalink_structure']) || isset($_POST['category_base']) ) {
        exit;
 }
 
-$permalink_structure = get_option('permalink_structure');
-$category_base = get_option('category_base');
-$tag_base = get_option( 'tag_base' );
+$permalink_structure = get_option( 'permalink_structure' );
+$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') )
@@ -129,10 +128,14 @@ if ( $iis7_permalinks ) {
 } elseif ( $is_nginx ) {
        $writable = false;
 } else {
-       if ( ( ! file_exists($home_path . '.htaccess') && is_writable($home_path) ) || is_writable($home_path . '.htaccess') )
+       if ( ( ! file_exists( $home_path . '.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path . '.htaccess' ) ) {
                $writable = true;
-       else
+       } 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 ( $wp_rewrite->using_index_permalinks() )
@@ -145,22 +148,24 @@ flush_rewrite_rules();
 require( ABSPATH . 'wp-admin/admin-header.php' );
 
 if ( ! empty( $_GET['settings-updated'] ) ) : ?>
-<div id="message" class="updated"><p><?php
+<div id="message" class="updated notice is-dismissible"><p><?php
 if ( ! is_multisite() ) {
        if ( $iis7_permalinks ) {
-               if ( $permalink_structure && ! $usingpi && ! $writable )
+               if ( $permalink_structure && ! $usingpi && ! $writable ) {
                        _e('You should update your web.config now.');
-               else if ( $permalink_structure && ! $usingpi && $writable )
+               } elseif ( $permalink_structure && ! $usingpi && $writable ) {
                        _e('Permalink structure updated. Remove write access on web.config file now!');
-               else
+               } else {
                        _e('Permalink structure updated.');
+               }
        } elseif ( $is_nginx ) {
                _e('Permalink structure updated.');
        } else {
-               if ( $permalink_structure && ! $usingpi && ! $writable )
+               if ( $permalink_structure && ! $usingpi && ! $writable && $update_required ) {
                        _e('You should update your .htaccess now.');
-               else
+               } else {
                        _e('Permalink structure updated.');
+               }
        }
 } else {
        _e('Permalink structure updated.');
@@ -170,13 +175,12 @@ if ( ! is_multisite() ) {
 <?php endif; ?>
 
 <div class="wrap">
-<?php screen_icon(); ?>
-<h2><?php echo esc_html( $title ); ?></h2>
+<h1><?php echo esc_html( $title ); ?></h1>
 
 <form name="form" action="options-permalink.php" method="post">
 <?php wp_nonce_field('update-permalink') ?>
 
-  <p><?php _e('By default WordPress uses web <abbr title="Universal Resource Locator">URL</abbr>s which have question marks and lots of numbers in them; however, WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A <a href="http://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.'); ?></p>
+  <p><?php _e('By default WordPress uses web <abbr title="Universal Resource Locator">URL</abbr>s which have question marks and lots of numbers in them; however, WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A <a href="https://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.'); ?></p>
 
 <?php
 if ( is_multisite() && !is_subdomain_install() && is_main_site() ) {
@@ -229,14 +233,9 @@ $structures = array(
 </table>
 
 <h3 class="title"><?php _e('Optional'); ?></h3>
-<?php
-$suffix = $prefix;
-if ( $suffix )
-       $suffix = ltrim( $suffix, '/' ) . '/';
-?>
 <p><?php
-/* translators: %s is a placeholder that must come at the start of the URL path. */
-printf( __('If you like, you may enter custom structures for your category and tag <abbr title="Universal Resource Locator">URL</abbr>s here. For example, using <code>topics</code> as your category base would make your category links like <code>http://example.org/%stopics/uncategorized/</code>. If you leave these blank the defaults will be used.'), $suffix ); ?></p>
+/* translators: %s is a placeholder that must come at the start of the URL. */
+printf( __('If you like, you may enter custom structures for your category and tag <abbr title="Universal Resource Locator">URL</abbr>s here. For example, using <code>topics</code> as your category base would make your category links like <code>%s/topics/uncategorized/</code>. If you leave these blank the defaults will be used.'), get_option('home') . $blog_prefix . $prefix ); ?></p>
 
 <table class="form-table">
        <tr>
@@ -258,14 +257,14 @@ printf( __('If you like, you may enter custom structures for your category and t
 <?php if ( $iis7_permalinks ) :
        if ( isset($_POST['submit']) && $permalink_structure && ! $usingpi && ! $writable ) :
                if ( file_exists($home_path . 'web.config') ) : ?>
-<p><?php _e('If your <code>web.config</code> file were <a href="http://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>
+<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">
 <?php wp_nonce_field('update-permalink') ?>
        <p><textarea rows="9" class="large-text readonly" name="rules" id="rules" readonly="readonly"><?php echo esc_textarea( $wp_rewrite->iis7_url_rewrite_rules() ); ?></textarea></p>
 </form>
 <p><?php _e('If you temporarily make your <code>web.config</code> file writable for us to generate rewrite rules automatically, do not forget to revert the permissions after rule has been saved.') ?></p>
                <?php else : ?>
-<p><?php _e('If the root directory of your site were <a href="http://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. Create a new file, called <code>web.config</code> in the root directory of your site. Click in the field and press <kbd>CTRL + a</kbd> to select all. Then insert this code into the <code>web.config</code> file.') ?></p>
+<p><?php _e('If the root directory of your site 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. Create a new file, called <code>web.config</code> in the root directory of your site. Click in the field and press <kbd>CTRL + a</kbd> to select all. Then insert this code into the <code>web.config</code> file.') ?></p>
 <form action="options-permalink.php" method="post">
 <?php wp_nonce_field('update-permalink') ?>
        <p><textarea rows="18" class="large-text readonly" name="rules" id="rules" readonly="readonly"><?php echo esc_textarea( $wp_rewrite->iis7_url_rewrite_rules(true) ); ?></textarea></p>
@@ -274,8 +273,8 @@ printf( __('If you like, you may enter custom structures for your category and t
                <?php endif; ?>
        <?php endif; ?>
 <?php elseif ( ! $is_nginx ) :
-       if ( $permalink_structure && ! $usingpi && ! $writable ) : ?>
-<p><?php _e('If your <code>.htaccess</code> file were <a href="http://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>
+       if ( $permalink_structure && ! $usingpi && ! $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') ?>
        <p><textarea rows="6" class="large-text readonly" name="rules" id="rules" readonly="readonly"><?php echo esc_textarea( $wp_rewrite->mod_rewrite_rules() ); ?></textarea></p>