Make WordPress Core

Ticket #16413: 16413.2.diff

File 16413.2.diff, 25.8 KB (added by andrewryno, 13 years ago)
  • wp-admin/options-general.php

     
    77 */
    88
    99/** WordPress Administration Bootstrap */
    10 require_once('./admin.php');
     10require_once( './admin.php' );
    1111
    1212if ( ! current_user_can( 'manage_options' ) )
    1313        wp_die( __( 'You do not have sufficient permissions to manage options for this site.' ) );
    1414
    15 $title = __('General Settings');
     15$title = __( 'General Settings' );
    1616$parent_file = 'options-general.php';
    1717/* translators: date and time format for exact current time, mainly about timezones, see http://php.net/date */
    18 $timezone_format = _x('Y-m-d G:i:s', 'timezone date format');
     18$timezone_format = _x( 'Y-m-d G:i:s', 'timezone date format' );
    1919
    2020/**
    2121 * Display JavaScript on the page.
     
    5656</script>
    5757<?php
    5858}
    59 add_action('admin_head', 'add_js');
     59add_action( 'admin_head', 'add_js' );
    6060
    6161add_contextual_help($current_screen,
    62         '<p>' . __('The fields on this screen determine some of the basics of your site setup.') . '</p>' .
    63         '<p>' . __('Most themes display the site title at the top of every page, in the title bar of the browser, and as the identifying name for syndicated feeds. The tagline is also displayed by many themes.') . '</p>' .
    64         '<p>' . __('The WordPress URL and the Site URL can be the same (example.com) or different; for example, having the WordPress core files (example.com/wordpress) in a subdirectory instead of the root directory.') . '</p>' .
    65         '<p>' . __('If you want site visitors to be able to register themselves, as opposed to being registered by the site administrator, check the membership box. A default user role can be set for all new users, whether self-registered or registered by the site administrator.') . '</p>' .
    66         '<p>' . __('UTC means Coordinated Universal Time.') . '</p>' .
    67         '<p>' . __('Remember to click the Save Changes button at the bottom of the screen for new settings to take effect.') . '</p>' .
    68         '<p><strong>' . __('For more information:') . '</strong></p>' .
    69         '<p>' . __('<a href="http://codex.wordpress.org/Settings_General_SubPanel" target="_blank">Documentation on General Settings</a>') . '</p>' .
    70         '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
     62        '<p>' . __( 'The fields on this screen determine some of the basics of your site setup.' ) . '</p>' .
     63        '<p>' . __( 'Most themes display the site title at the top of every page, in the title bar of the browser, and as the identifying name for syndicated feeds. The tagline is also displayed by many themes.' ) . '</p>' .
     64        '<p>' . __( 'The WordPress URL and the Site URL can be the same (example.com) or different; for example, having the WordPress core files (example.com/wordpress) in a subdirectory instead of the root directory.' ) . '</p>' .
     65        '<p>' . __( 'If you want site visitors to be able to register themselves, as opposed to being registered by the site administrator, check the membership box. A default user role can be set for all new users, whether self-registered or registered by the site administrator.' ) . '</p>' .
     66        '<p>' . __( 'UTC means Coordinated Universal Time.' ) . '</p>' .
     67        '<p>' . __( 'Remember to click the Save Changes button at the bottom of the screen for new settings to take effect.' ) . '</p>' .
     68        '<p><strong>' . __('For more information:' ) . '</strong></p>' .
     69        '<p>' . __( '<a href="http://codex.wordpress.org/Settings_General_SubPanel" target="_blank">Documentation on General Settings</a>' ) . '</p>' .
     70        '<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
    7171);
    7272
    73 include('./admin-header.php');
    74 ?>
     73include( './admin-header.php' );
    7574
    76 <div class="wrap">
    77 <?php screen_icon(); ?>
    78 <h2><?php echo esc_html( $title ); ?></h2>
     75add_settings_field( 'blogname', _( 'Site Title' ), 'options_general_blogname', 'general' );
     76function options_general_blogname() {
     77        ?>
     78        <input name="blogname" type="text" id="blogname" value="<?php form_option( 'blogname' ); ?>" class="regular-text" />
     79        <?php
     80}
    7981
    80 <form method="post" action="options.php">
    81 <?php settings_fields('general'); ?>
     82add_settings_field( 'blogdescription', _( 'Tagline' ), 'options_general_blogdescription', 'general' );
     83function options_general_blogdescription() {
     84        ?>
     85        <input name="blogdescription" type="text" id="blogdescription"  value="<?php form_option( 'blogdescription' ); ?>" class="regular-text" />
     86        <span class="description"><?php _e( 'In a few words, explain what this site is about.' ) ?></span>
     87        <?php
     88}
    8289
    83 <table class="form-table">
    84 <tr valign="top">
    85 <th scope="row"><label for="blogname"><?php _e('Site Title') ?></label></th>
    86 <td><input name="blogname" type="text" id="blogname" value="<?php form_option('blogname'); ?>" class="regular-text" /></td>
    87 </tr>
    88 <tr valign="top">
    89 <th scope="row"><label for="blogdescription"><?php _e('Tagline') ?></label></th>
    90 <td><input name="blogdescription" type="text" id="blogdescription"  value="<?php form_option('blogdescription'); ?>" class="regular-text" />
    91 <span class="description"><?php _e('In a few words, explain what this site is about.') ?></span></td>
    92 </tr>
    93 <?php if ( !is_multisite() ) { ?>
    94 <tr valign="top">
    95 <th scope="row"><label for="siteurl"><?php _e('WordPress address (URL)') ?></label></th>
    96 <td><input name="siteurl" type="text" id="siteurl" value="<?php form_option('siteurl'); ?>"<?php disabled( defined( 'WP_SITEURL' ) ); ?> class="regular-text code<?php if ( defined( 'WP_SITEURL' ) ) echo ' disabled' ?>" /></td>
    97 </tr>
    98 <tr valign="top">
    99 <th scope="row"><label for="home"><?php _e('Site address (URL)') ?></label></th>
    100 <td><input name="home" type="text" id="home" value="<?php form_option('home'); ?>"<?php disabled( defined( 'WP_HOME' ) ); ?> class="regular-text code<?php if ( defined( 'WP_HOME' ) ) echo ' disabled' ?>" />
    101 <span class="description"><?php _e('Enter the address here if you want your site homepage <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">to be different from the directory</a> you installed WordPress.'); ?></span></td>
    102 </tr>
    103 <tr valign="top">
    104 <th scope="row"><label for="admin_email"><?php _e('E-mail address') ?> </label></th>
    105 <td><input name="admin_email" type="text" id="admin_email" value="<?php form_option('admin_email'); ?>" class="regular-text" />
    106 <span class="description"><?php _e('This address is used for admin purposes, like new user notification.') ?></span></td>
    107 </tr>
    108 <tr valign="top">
    109 <th scope="row"><?php _e('Membership') ?></th>
    110 <td> <fieldset><legend class="screen-reader-text"><span><?php _e('Membership') ?></span></legend><label for="users_can_register">
    111 <input name="users_can_register" type="checkbox" id="users_can_register" value="1" <?php checked('1', get_option('users_can_register')); ?> />
    112 <?php _e('Anyone can register') ?></label>
    113 </fieldset></td>
    114 </tr>
    115 <tr valign="top">
    116 <th scope="row"><label for="default_role"><?php _e('New User Default Role') ?></label></th>
    117 <td>
    118 <select name="default_role" id="default_role"><?php wp_dropdown_roles( get_option('default_role') ); ?></select>
    119 </td>
    120 </tr>
    121 <?php } else { ?>
    122 <tr valign="top">
    123 <th scope="row"><label for="new_admin_email"><?php _e('E-mail address') ?> </label></th>
    124 <td><input name="new_admin_email" type="text" id="new_admin_email" value="<?php form_option('admin_email'); ?>" class="regular-text code" />
    125 <span class="description"><?php _e('This address is used for admin purposes. If you change this we will send you an e-mail at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>') ?></span>
    126 <?php
    127 $new_admin_email = get_option( 'new_admin_email' );
    128 if ( $new_admin_email && $new_admin_email != get_option('admin_email') ) : ?>
    129 <div class="updated inline">
    130 <p><?php printf( __('There is a pending change of the admin e-mail to <code>%1$s</code>. <a href="%2$s">Cancel</a>'), $new_admin_email, esc_url( admin_url( 'options.php?dismiss=new_admin_email' ) ) ); ?></p>
    131 </div>
    132 <?php endif; ?>
    133 </td>
    134 </tr>
    135 <?php } ?>
    136 <tr>
    137 <?php
    138 if ( !wp_timezone_supported() ) : // no magic timezone support here
    139 ?>
    140 <th scope="row"><label for="gmt_offset"><?php _e('Timezone') ?> </label></th>
    141 <td>
    142 <select name="gmt_offset" id="gmt_offset">
    143 <?php
    144 $current_offset = get_option('gmt_offset');
    145 $offset_range = array (-12, -11.5, -11, -10.5, -10, -9.5, -9, -8.5, -8, -7.5, -7, -6.5, -6, -5.5, -5, -4.5, -4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5,
    146         0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 7.5, 8, 8.5, 8.75, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.75, 13, 13.75, 14);
    147 foreach ( $offset_range as $offset ) {
    148         if ( 0 < $offset )
    149                 $offset_name = '+' . $offset;
    150         elseif ( 0 == $offset )
    151                 $offset_name = '';
    152         else
    153                 $offset_name = (string) $offset;
    154 
    155         $offset_name = str_replace(array('.25','.5','.75'), array(':15',':30',':45'), $offset_name);
    156 
    157         $selected = '';
    158         if ( $current_offset == $offset ) {
    159                 $selected = " selected='selected'";
    160                 $current_offset_name = $offset_name;
     90if ( !is_multisite() ) {
     91        add_settings_field( 'siteurl', _( 'WordPress address (URL)' ), 'options_general_siteurl', 'general' );
     92        function options_general_siteurl() {
     93                ?>
     94                <input name="siteurl" type="text" id="siteurl" value="<?php form_option( 'siteurl' ); ?>"<?php disabled( defined( 'WP_SITEURL' ) ); ?> class="regular-text code<?php if ( defined( 'WP_SITEURL' ) ) echo ' disabled' ?>" />
     95                <?php
    16196        }
    162         echo "<option value=\"" . esc_attr($offset) . "\"$selected>" . sprintf(__('UTC %s'), $offset_name) . '</option>';
     97       
     98        add_settings_field( 'home', _( 'Site address (URL)' ), 'options_general_home', 'general' );
     99        function options_general_home() {
     100                ?>
     101                <input name="home" type="text" id="home" value="<?php form_option( 'home' ); ?>"<?php disabled( defined( 'WP_HOME' ) ); ?> class="regular-text code<?php if ( defined( 'WP_HOME' ) ) echo ' disabled' ?>" />
     102                <span class="description"><?php _e( 'Enter the address here if you want your site homepage <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">to be different from the directory</a> you installed WordPress.' ); ?></span>
     103                <?php
     104        }
     105       
     106        add_settings_field( 'admin_email', _( 'E-mail address' ), 'options_general_admin_email', 'general' );
     107        function options_general_admin_email() {
     108                ?>
     109                <input name="admin_email" type="text" id="admin_email" value="<?php form_option( 'admin_email' ); ?>" class="regular-text" />
     110                <span class="description"><?php _e( 'This address is used for admin purposes, like new user notification.' ); ?></span>
     111                <?php
     112        }
     113       
     114        add_settings_field( 'users_can_register', _( 'Membership' ), 'options_general_users_can_register', 'general' );
     115        function options_general_users_can_register() {
     116                ?>
     117                <fieldset>
     118                        <legend class="screen-reader-text"><span><?php _e( 'Membership' ); ?></span></legend>
     119                        <label for="users_can_register">
     120                                <input name="users_can_register" type="checkbox" id="users_can_register" value="1" <?php checked( '1', get_option( 'users_can_register' ) ); ?> />
     121                                <?php _e( 'Anyone can register' ); ?>
     122                        </label>
     123                </fieldset>
     124                <?php
     125        }
     126       
     127        add_settings_field( 'default_role', _( 'New User Default Role' ), 'options_general_default_role', 'general' );
     128        function options_general_default_role() {
     129                ?>
     130                <select name="default_role" id="default_role"><?php wp_dropdown_roles( get_option( 'default_role' ) ); ?></select>
     131                <?php
     132        }
     133} else {
     134        add_settings_field( 'new_admin_email', _( 'E-mail address' ), 'options_general_new_admin_email', 'general' );
     135        function options_general_new_admin_email() {
     136                ?>
     137                <input name="new_admin_email" type="text" id="new_admin_email" value="<?php form_option( 'admin_email' ); ?>" class="regular-text code" />
     138                <span class="description"><?php _e( 'This address is used for admin purposes. If you change this we will send you an e-mail at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>' ); ?></span>
     139                <?php
     140                $new_admin_email = get_option( 'new_admin_email' );
     141                if ( $new_admin_email && $new_admin_email != get_option('admin_email') ) : ?>
     142                <div class="updated inline">
     143                        <p><?php printf( __( 'There is a pending change of the admin e-mail to <code>%1$s</code>. <a href="%2$s">Cancel</a>' ), $new_admin_email, esc_url( admin_url( 'options.php?dismiss=new_admin_email' ) ) ); ?></p>
     144                </div>
     145                <?php
     146                endif;
     147        }
    163148}
    164 ?>
    165 </select>
    166 <?php _e('hours'); ?>
    167 <span id="utc-time"><?php printf(__('<abbr title="Coordinated Universal Time">UTC</abbr> time is <code>%s</code>'), date_i18n( $time_format, false, 'gmt')); ?></span>
    168 <?php if ($current_offset) : ?>
    169         <span id="local-time"><?php printf(__('UTC %1$s is <code>%2$s</code>'), $current_offset_name, date_i18n($time_format)); ?></span>
    170 <?php endif; ?>
    171 <br />
    172 <span class="description"><?php _e('Unfortunately, you have to manually update this for daylight saving time. The PHP Date/Time library is not supported by your web host.'); ?></span>
    173 </td>
    174 <?php
    175 else: // looks like we can do nice timezone selection!
    176 $current_offset = get_option('gmt_offset');
    177 $tzstring = get_option('timezone_string');
    178149
    179 $check_zone_info = true;
     150if ( ! wp_timezone_supported() ) : // no magic timezone support here
     151        add_settings_field( 'gmt_offset', _( 'Timezone' ), 'options_general_gmt_offset', 'general' );
     152        function options_general_gmt_offset() {
     153                ?>
     154                <select name="gmt_offset" id="gmt_offset">
     155                <?php
     156                $current_offset = get_option( 'gmt_offset' );
     157                $offset_range = array ( -12, -11.5, -11, -10.5, -10, -9.5, -9, -8.5, -8, -7.5, -7, -6.5, -6, -5.5, -5, -4.5, -4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5,
     158                        0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 7.5, 8, 8.5, 8.75, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.75, 13, 13.75, 14 );
     159                foreach ( $offset_range as $offset ) {
     160                        if ( 0 < $offset )
     161                                $offset_name = '+' . $offset;
     162                        elseif ( 0 == $offset )
     163                                $offset_name = '';
     164                        else
     165                                $offset_name = (string) $offset;
    180166
    181 // Remove old Etc mappings.  Fallback to gmt_offset.
    182 if ( false !== strpos($tzstring,'Etc/GMT') )
    183         $tzstring = '';
     167                        $offset_name = str_replace( array( '.25', '.5', '.75' ), array( ':15',':30',':45' ), $offset_name );
    184168
    185 if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
    186         $check_zone_info = false;
    187         if ( 0 == $current_offset )
    188                 $tzstring = 'UTC+0';
    189         elseif ($current_offset < 0)
    190                 $tzstring = 'UTC' . $current_offset;
    191         else
    192                 $tzstring = 'UTC+' . $current_offset;
    193 }
     169                        $selected = '';
     170                        if ( $current_offset == $offset ) {
     171                                $selected = " selected='selected'";
     172                                $current_offset_name = $offset_name;
     173                        }
     174                        echo "<option value=\"" . esc_attr( $offset ) . "\"$selected>" . sprintf( __( 'UTC %s' ), $offset_name ) . '</option>';
     175                }
     176                ?>
     177                </select>
     178                <?php _e( 'hours' ); ?>
     179                <span id="utc-time"><?php printf( __( '<abbr title="Coordinated Universal Time">UTC</abbr> time is <code>%s</code>' ), date_i18n( $time_format, false, 'gmt' ) ); ?></span>
     180                <?php if ( $current_offset ) : ?>
     181                        <span id="local-time"><?php printf( __( 'UTC %1$s is <code>%2$s</code>' ), $current_offset_name, date_i18n( $time_format ) ); ?></span>
     182                <?php endif; ?>
     183                <br />
     184                <span class="description"><?php _e( 'Unfortunately, you have to manually update this for daylight saving time. The PHP Date/Time library is not supported by your web host.' ); ?></span>
     185                <?php
     186        }
     187else:
     188        add_settings_field( 'timezone_string', _( 'Timezone' ), 'options_general_timezone_string', 'general' );
     189        function options_general_timezone_string() {
     190                global $timezone_format;
     191               
     192                $current_offset = get_option( 'gmt_offset' );
     193                $tzstring = get_option( 'timezone_string' );
    194194
    195 ?>
    196 <th scope="row"><label for="timezone_string"><?php _e('Timezone') ?></label></th>
    197 <td>
     195                $check_zone_info = true;
    198196
    199 <select id="timezone_string" name="timezone_string">
    200 <?php echo wp_timezone_choice($tzstring); ?>
    201 </select>
     197                // Remove old Etc mappings.  Fallback to gmt_offset.
     198                if ( false !== strpos( $tzstring,'Etc/GMT' ) )
     199                        $tzstring = '';
    202200
    203     <span id="utc-time"><?php printf(__('<abbr title="Coordinated Universal Time">UTC</abbr> time is <code>%s</code>'), date_i18n($timezone_format, false, 'gmt')); ?></span>
    204 <?php if ( get_option('timezone_string') || !empty($current_offset) ) : ?>
    205         <span id="local-time"><?php printf(__('Local time is <code>%1$s</code>'), date_i18n($timezone_format)); ?></span>
    206 <?php endif; ?>
    207 <br />
    208 <span class="description"><?php _e('Choose a city in the same timezone as you.'); ?></span>
    209 <?php if ($check_zone_info && $tzstring) : ?>
    210 <br />
    211 <span>
    212         <?php
    213         // Set TZ so localtime works.
    214         date_default_timezone_set($tzstring);
    215         $now = localtime(time(), true);
    216         if ( $now['tm_isdst'] )
    217                 _e('This timezone is currently in daylight saving time.');
    218         else
    219                 _e('This timezone is currently in standard time.');
    220         ?>
    221         <br />
    222         <?php
    223         if ( function_exists('timezone_transitions_get') ) {
    224                 $found = false;
    225                 $date_time_zone_selected = new DateTimeZone($tzstring);
    226                 $tz_offset = timezone_offset_get($date_time_zone_selected, date_create());
    227                 $right_now = time();
    228                 foreach ( timezone_transitions_get($date_time_zone_selected) as $tr) {
    229                         if ( $tr['ts'] > $right_now ) {
    230                             $found = true;
    231                                 break;
    232                         }
     201                if ( empty( $tzstring ) ) { // Create a UTC+- zone if no timezone string exists
     202                        $check_zone_info = false;
     203                        if ( 0 == $current_offset )
     204                                $tzstring = 'UTC+0';
     205                        elseif ( $current_offset < 0 )
     206                                $tzstring = 'UTC' . $current_offset;
     207                        else
     208                                $tzstring = 'UTC+' . $current_offset;
    233209                }
     210                ?>
     211                <select id="timezone_string" name="timezone_string">
     212                <?php echo wp_timezone_choice( $tzstring ); ?>
     213                </select>
     214                <span id="utc-time"><?php printf( __( '<abbr title="Coordinated Universal Time">UTC</abbr> time is <code>%s</code>' ), date_i18n( $timezone_format, false, 'gmt' ) ); ?></span>
     215                <?php if ( get_option( 'timezone_string' ) || ! empty( $current_offset ) ) : ?>
     216                        <span id="local-time"><?php printf( __( 'Local time is <code>%1$s</code>' ), date_i18n( $timezone_format ) ); ?></span>
     217                <?php endif; ?>
     218                <br />
     219                <span class="description"><?php _e( 'Choose a city in the same timezone as you.' ); ?></span>
     220                <?php if ( $check_zone_info && $tzstring ) : ?>
     221                <br />
     222                <span>
     223                        <?php
     224                        // Set TZ so localtime works.
     225                        date_default_timezone_set($tzstring);
     226                        $now = localtime(time(), true);
     227                        if ( $now['tm_isdst'] )
     228                                _e( 'This timezone is currently in daylight saving time.' );
     229                        else
     230                                _e( 'This timezone is currently in standard time.' );
     231                        ?>
     232                        <br />
     233                        <?php
     234                        if ( function_exists( 'timezone_transitions_get' ) ) {
     235                                $found = false;
     236                                $date_time_zone_selected = new DateTimeZone($tzstring);
     237                                $tz_offset = timezone_offset_get( $date_time_zone_selected, date_create() );
     238                                $right_now = time();
     239                                foreach ( timezone_transitions_get( $date_time_zone_selected ) as $tr ) {
     240                                        if ( $tr['ts'] > $right_now ) {
     241                                            $found = true;
     242                                                break;
     243                                        }
     244                                }
    234245
    235                 if ( $found ) {
    236                         echo ' ';
    237                         $message = $tr['isdst'] ?
    238                                 __('Daylight saving time begins on: <code>%s</code>.') :
    239                                 __('Standard time begins  on: <code>%s</code>.');
    240                         // Add the difference between the current offset and the new offset to ts to get the correct transition time from date_i18n().
    241                         printf( $message, date_i18n(get_option('date_format') . ' ' . get_option('time_format'), $tr['ts'] + ($tz_offset - $tr['offset']) ) );
    242                 } else {
    243                         _e('This timezone does not observe daylight saving time.');
    244                 }
     246                                if ( $found ) {
     247                                        echo ' ';
     248                                        $message = $tr['isdst'] ?
     249                                                __( 'Daylight saving time begins on: <code>%s</code>.' ) :
     250                                                __( 'Standard time begins  on: <code>%s</code>.' );
     251                                        // Add the difference between the current offset and the new offset to ts to get the correct transition time from date_i18n().
     252                                        printf( $message, date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $tr['ts'] + ( $tz_offset - $tr['offset'] ) ) );
     253                                } else {
     254                                        _e( 'This timezone does not observe daylight saving time.' );
     255                                }
     256                        }
     257                        // Set back to UTC.
     258                        date_default_timezone_set( 'UTC' );
     259                        ?>
     260                </span>
     261                <?php
     262                endif;
    245263        }
    246         // Set back to UTC.
    247         date_default_timezone_set('UTC');
     264endif;
     265
     266add_settings_field( 'date_format', _( 'Date Format' ), 'options_general_date_format', 'general' );
     267function options_general_date_format() {
    248268        ?>
    249         </span>
    250 <?php endif; ?>
    251 </td>
    252 
    253 <?php endif; ?>
    254 </tr>
    255 <tr>
    256 <th scope="row"><?php _e('Date Format') ?></th>
    257 <td>
    258269        <fieldset><legend class="screen-reader-text"><span><?php _e('Date Format') ?></span></legend>
    259 <?php
    260 
     270        <?php
    261271        $date_formats = apply_filters( 'date_formats', array(
    262                 __('F j, Y'),
     272                __( 'F j, Y' ),
    263273                'Y/m/d',
    264274                'm/d/Y',
    265275                'd/m/Y',
     
    268278        $custom = true;
    269279
    270280        foreach ( $date_formats as $format ) {
    271                 echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='date_format' value='" . esc_attr($format) . "'";
    272                 if ( get_option('date_format') === $format ) { // checked() uses "==" rather than "==="
     281                echo "\t<label title='" . esc_attr( $format ) . "'><input type='radio' name='date_format' value='" . esc_attr($format) . "'";
     282                if ( get_option( 'date_format' ) === $format ) { // checked() uses "==" rather than "==="
    273283                        echo " checked='checked'";
    274284                        $custom = false;
    275285                }
     
    278288
    279289        echo '  <label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"';
    280290        checked( $custom );
    281         echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('date_format') ) . "</span> <img class='ajax-loading' src='" . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . "' />\n";
     291        echo '/> ' . __( 'Custom:' ) . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option( 'date_format' ) ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('date_format') ) . "</span> <img class='ajax-loading' src='" . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . "' />\n";
    282292
    283         echo "\t<p>" . __('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date and time formatting</a>.') . "</p>\n";
    284 ?>
     293        echo "\t<p>" . __( '<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date and time formatting</a>.' ) . "</p>\n";
     294        ?>
    285295        </fieldset>
    286 </td>
    287 </tr>
    288 <tr>
    289 <th scope="row"><?php _e('Time Format') ?></th>
    290 <td>
     296        <?php
     297}
     298
     299add_settings_field( 'time_format', _( 'Time Format' ), 'options_general_time_format', 'general' );
     300function options_general_time_format() {
     301        ?>
    291302        <fieldset><legend class="screen-reader-text"><span><?php _e('Time Format') ?></span></legend>
    292 <?php
    293 
     303        <?php
    294304        $time_formats = apply_filters( 'time_formats', array(
    295                 __('g:i a'),
     305                __( 'g:i a' ),
    296306                'g:i A',
    297307                'H:i',
    298308        ) );
     
    301311
    302312        foreach ( $time_formats as $format ) {
    303313                echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='time_format' value='" . esc_attr($format) . "'";
    304                 if ( get_option('time_format') === $format ) { // checked() uses "==" rather than "==="
     314                if ( get_option( 'time_format' ) === $format ) { // checked() uses "==" rather than "==="
    305315                        echo " checked='checked'";
    306316                        $custom = false;
    307317                }
     
    311321        echo '  <label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"';
    312322        checked( $custom );
    313323        echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option('time_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('time_format') ) . "</span> <img class='ajax-loading' src='" . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . "' />\n";
    314         ;
    315 ?>
     324        ?>
    316325        </fieldset>
    317 </td>
    318 </tr>
    319 <tr>
    320 <th scope="row"><label for="start_of_week"><?php _e('Week Starts On') ?></label></th>
    321 <td><select name="start_of_week" id="start_of_week">
    322 <?php
    323 for ($day_index = 0; $day_index <= 6; $day_index++) :
    324         $selected = (get_option('start_of_week') == $day_index) ? 'selected="selected"' : '';
    325         echo "\n\t<option value='" . esc_attr($day_index) . "' $selected>" . $wp_locale->get_weekday($day_index) . '</option>';
    326 endfor;
     326        <?php
     327}
     328
     329add_settings_field( 'start_of_week', _( 'Start of Week' ), 'options_general_start_of_week', 'general' );
     330function options_general_start_of_week() {
     331        global $wp_locale;
     332        ?>
     333        <select name="start_of_week" id="start_of_week">
     334        <?php
     335        for ($day_index = 0; $day_index <= 6; $day_index++) :
     336                $selected = (get_option('start_of_week') == $day_index) ? 'selected="selected"' : '';
     337                echo "\n\t<option value='" . esc_attr($day_index) . "' $selected>" . $wp_locale->get_weekday($day_index) . '</option>';
     338        endfor;
     339        ?>
     340        </select>
     341        <?php
     342}
    327343?>
    328 </select></td>
    329 </tr>
    330 <?php do_settings_fields('general', 'default'); ?>
    331 <?php
    332         $languages = get_available_languages();
    333         if ( is_multisite() && !empty( $languages ) ):
    334 ?>
    335         <tr valign="top">
    336                 <th width="33%" scope="row"><?php _e('Site language:') ?></th>
    337                 <td>
    338                         <select name="WPLANG" id="WPLANG">
    339                                 <?php mu_dropdown_languages( $languages, get_option('WPLANG') ); ?>
    340                         </select>
    341                 </td>
    342         </tr>
    343 <?php
    344         endif;
    345 ?>
    346 </table>
    347344
    348 <?php do_settings_sections('general'); ?>
    349 
    350 <?php submit_button(); ?>
    351 </form>
    352 
     345<div class="wrap">
     346        <?php screen_icon(); ?>
     347        <h2><?php echo esc_html( $title ); ?></h2>
     348        <form method="post" action="options.php">
     349                <?php settings_fields( 'general' ); ?>
     350                <table class="form-table">
     351                        <?php do_settings_fields( 'general', 'default' ); ?>
     352                        <?php
     353                        $languages = get_available_languages();
     354                        if ( is_multisite() && ! empty( $languages ) ):
     355                        ?>
     356                        <tr valign="top">
     357                                <th width="33%" scope="row"><?php _e( 'Site language:' ) ?></th>
     358                                <td>
     359                                        <select name="WPLANG" id="WPLANG">
     360                                                <?php mu_dropdown_languages( $languages, get_option('WPLANG') ); ?>
     361                                        </select>
     362                                </td>
     363                        </tr>
     364                        <?php
     365                        endif;
     366                        ?>
     367                </table>
     368                <?php do_settings_sections( 'general' ); ?>
     369                <?php submit_button(); ?>
     370        </form>
    353371</div>
    354372
    355 <?php include('./admin-footer.php') ?>
     373<?php include( './admin-footer.php' ) ?>
     374 No newline at end of file