WordPress.org

Make WordPress Core

Ticket #12192: options-general.php

File options-general.php, 12.2 KB (added by jorbin, 4 years ago)

Patch that adds a yellow box around the message to draw attention to it.

Line 
1<?php
2/**
3 * General settings administration panel.
4 *
5 * @package WordPress
6 * @subpackage Administration
7 */
8
9/** WordPress Administration Bootstrap */
10require_once('./admin.php');
11
12if ( ! current_user_can('manage_options') )
13        wp_die(__('You do not have sufficient permissions to manage options for this blog.'));
14
15$title = __('General Settings');
16$parent_file = 'options-general.php';
17/* 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');
19
20/**
21 * Display JavaScript on the page.
22 *
23 * @package WordPress
24 * @subpackage General_Settings_Panel
25 */
26function add_js() {
27?>
28<script type="text/javascript">
29//<![CDATA[
30        jQuery(document).ready(function($){
31                $("input[name='date_format']").click(function(){
32                        if ( "date_format_custom_radio" != $(this).attr("id") )
33                                $("input[name='date_format_custom']").val( $(this).val() );
34                });
35                $("input[name='date_format_custom']").focus(function(){
36                        $("#date_format_custom_radio").attr("checked", "checked");
37                });
38
39                $("input[name='time_format']").click(function(){
40                        if ( "time_format_custom_radio" != $(this).attr("id") )
41                                $("input[name='time_format_custom']").val( $(this).val() );
42                });
43                $("input[name='time_format_custom']").focus(function(){
44                        $("#time_format_custom_radio").attr("checked", "checked");
45                });
46        });
47//]]>
48</script>
49<?php
50}
51add_filter('admin_head', 'add_js');
52
53add_contextual_help($current_screen, __('<a href="http://codex.wordpress.org/Settings_General_SubPanel" target="_blank">General Settings</a>'));
54
55include('./admin-header.php');
56?>
57
58<div class="wrap">
59<?php screen_icon(); ?>
60<h2><?php echo esc_html( $title ); ?></h2>
61
62<form method="post" action="options.php">
63<?php settings_fields('general'); ?>
64
65<table class="form-table">
66<tr valign="top">
67<th scope="row"><label for="blogname"><?php _e('Blog Title') ?></label></th>
68<td><input name="blogname" type="text" id="blogname" value="<?php form_option('blogname'); ?>" class="regular-text" /></td>
69</tr>
70<tr valign="top">
71<th scope="row"><label for="blogdescription"><?php _e('Tagline') ?></label></th>
72<td><input name="blogdescription" type="text" id="blogdescription"  value="<?php form_option('blogdescription'); ?>" class="regular-text" />
73<span class="description"><?php _e('In a few words, explain what this blog is about.') ?></span></td>
74</tr>
75<?php if ( !is_multisite() ) { ?>
76<tr valign="top">
77<th scope="row"><label for="siteurl"><?php _e('WordPress address (URL)') ?></label></th>
78<td><input name="siteurl" type="text" id="siteurl" value="<?php form_option('siteurl'); ?>" class="regular-text code<?php if ( defined( 'WP_SITEURL' ) ) : ?> disabled" disabled="disabled"<?php else: ?>"<?php endif; ?> /></td>
79</tr>
80<tr valign="top">
81<th scope="row"><label for="home"><?php _e('Blog address (URL)') ?></label></th>
82<td><input name="home" type="text" id="home" value="<?php form_option('home'); ?>" class="regular-text code<?php if ( defined( 'WP_HOME' ) ) : ?> disabled" disabled="disabled"<?php else: ?>"<?php endif; ?> />
83<span class="description"><?php _e('Enter the address here if you want your blog homepage <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">to be different from the directory</a> you installed WordPress.'); ?></span></td>
84</tr>
85<tr valign="top">
86<th scope="row"><label for="admin_email"><?php _e('E-mail address') ?> </label></th>
87<td><input name="admin_email" type="text" id="admin_email" value="<?php form_option('admin_email'); ?>" class="regular-text" />
88<span class="description
89<?php
90$new_admin_email =  get_option( 'new_admin_email' );
91if (true == $new_admin_email) : ?>
92updated ">
93<?php printf( __('There is a pending change of the admin e-mail to: %s'), $new_admin_email ); ?>
94<?php else: ?>
95">
96<?php _e('This address is used for admin purposes, like new user notification.') ?>
97<?php endif; ?>
98</span></td>
99</tr>
100<tr valign="top">
101<th scope="row"><?php _e('Membership') ?></th>
102<td> <fieldset><legend class="screen-reader-text"><span><?php _e('Membership') ?></span></legend><label for="users_can_register">
103<input name="users_can_register" type="checkbox" id="users_can_register" value="1" <?php checked('1', get_option('users_can_register')); ?> />
104<?php _e('Anyone can register') ?></label>
105</fieldset></td>
106</tr>
107<tr valign="top">
108<th scope="row"><label for="default_role"><?php _e('New User Default Role') ?></label></th>
109<td>
110<select name="default_role" id="default_role"><?php wp_dropdown_roles( get_option('default_role') ); ?></select>
111</td>
112</tr>
113<?php } else { ?>
114<tr valign="top">
115<th scope="row"><label for="new_admin_email"><?php _e('E-mail address') ?> </label></th>
116<td><input name="new_admin_email" type="text" id="new_admin_email" value="<?php form_option('admin_email'); ?>" class="regular-text code" />
117<span class="setting-description"><?php _e('This address is used for admin purposes.') ?> <?php _e('If you change this we will send you an email at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>') ?></span></td>
118</tr>
119<?php } ?>
120<tr>
121<?php
122if ( !wp_timezone_supported() ) : // no magic timezone support here
123?>
124<th scope="row"><label for="gmt_offset"><?php _e('Timezone') ?> </label></th>
125<td>
126<select name="gmt_offset" id="gmt_offset">
127<?php
128$current_offset = get_option('gmt_offset');
129$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,
130        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);
131foreach ( $offset_range as $offset ) {
132        if ( 0 < $offset )
133                $offset_name = '+' . $offset;
134        elseif ( 0 == $offset )
135                $offset_name = '';
136        else
137                $offset_name = (string) $offset;
138
139        $offset_name = str_replace(array('.25','.5','.75'), array(':15',':30',':45'), $offset_name);
140
141        $selected = '';
142        if ( $current_offset == $offset ) {
143                $selected = " selected='selected'";
144                $current_offset_name = $offset_name;
145        }
146        echo "<option value=\"" . esc_attr($offset) . "\"$selected>" . sprintf(__('UTC %s'), $offset_name) . '</option>';
147}
148?>
149</select>
150<?php _e('hours'); ?>
151<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>
152<?php if ($current_offset) : ?>
153        <span id="local-time"><?php printf(__('UTC %1$s is <code>%2$s</code>'), $current_offset_name, date_i18n($time_format)); ?></span>
154<?php endif; ?>
155<br />
156<span class="description"><?php _e('Unfortunately, you have to manually update this for Daylight Savings Time. Lame, we know, but will be fixed in the future.'); ?></span>
157</td>
158<?php
159else: // looks like we can do nice timezone selection!
160$current_offset = get_option('gmt_offset');
161$tzstring = get_option('timezone_string');
162
163$check_zone_info = true;
164
165// Remove old Etc mappings.  Fallback to gmt_offset.
166if ( false !== strpos($tzstring,'Etc/GMT') )
167        $tzstring = '';
168
169if (empty($tzstring)) { // Create a UTC+- zone if no timezone string exists
170        $check_zone_info = false;
171        if ( 0 == $current_offset )
172                $tzstring = 'UTC+0';
173        elseif ($current_offset < 0)
174                $tzstring = 'UTC' . $current_offset;
175        else
176                $tzstring = 'UTC+' . $current_offset;
177}
178
179?>
180<th scope="row"><label for="timezone_string"><?php _e('Timezone') ?></label></th>
181<td>
182
183<select id="timezone_string" name="timezone_string">
184<?php echo wp_timezone_choice($tzstring); ?>
185</select>
186
187    <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>
188<?php if (get_option('timezone_string')) : ?>
189        <span id="local-time"><?php printf(__('Local time is <code>%1$s</code>'), date_i18n($timezone_format)); ?></span>
190<?php endif; ?>
191<br />
192<span class="description"><?php _e('Choose a city in the same timezone as you.'); ?></span>
193<br />
194<span>
195<?php if ($check_zone_info && $tzstring) : ?>
196        <?php
197        $now = localtime(time(),true);
198        if ($now['tm_isdst']) _e('This timezone is currently in daylight savings time.');
199        else _e('This timezone is currently in standard time.');
200        ?>
201        <br />
202        <?php
203        if (function_exists('timezone_transitions_get')) {
204                $dateTimeZoneSelected = new DateTimeZone($tzstring);
205                foreach (timezone_transitions_get($dateTimeZoneSelected) as $tr) {
206                        if ($tr['ts'] > time()) {
207                            $found = true;
208                                break;
209                        }
210                }
211
212                if ( isset($found) && $found === true ) {
213                        echo ' ';
214                        $message = $tr['isdst'] ?
215                                __('Daylight savings time begins on: <code>%s</code>.') :
216                                __('Standard time begins  on: <code>%s</code>.');
217                        printf( $message, date_i18n(get_option('date_format').' '.get_option('time_format'), $tr['ts'] ) );
218                } else {
219                        _e('This timezone does not observe daylight savings time.');
220                }
221        }
222        ?>
223        </span>
224<?php endif; ?>
225</td>
226
227<?php endif; ?>
228</tr>
229<tr>
230<th scope="row"><?php _e('Date Format') ?></th>
231<td>
232        <fieldset><legend class="screen-reader-text"><span><?php _e('Date Format') ?></span></legend>
233<?php
234
235        $date_formats = apply_filters( 'date_formats', array(
236                __('F j, Y'),
237                'Y/m/d',
238                'm/d/Y',
239                'd/m/Y',
240        ) );
241
242        $custom = TRUE;
243
244        foreach ( $date_formats as $format ) {
245                echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='date_format' value='" . esc_attr($format) . "'";
246                if ( get_option('date_format') === $format ) { // checked() uses "==" rather than "==="
247                        echo " checked='checked'";
248                        $custom = FALSE;
249                }
250                echo ' /> ' . date_i18n( $format ) . "</label><br />\n";
251        }
252
253        echo '  <label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"';
254        checked( $custom );
255        echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> ' . date_i18n( get_option('date_format') ) . "\n";
256
257        echo "\t<p>" . __('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date formatting</a>. Click &#8220;Save Changes&#8221; to update sample output.') . "</p>\n";
258?>
259        </fieldset>
260</td>
261</tr>
262<tr>
263<th scope="row"><?php _e('Time Format') ?></th>
264<td>
265        <fieldset><legend class="screen-reader-text"><span><?php _e('Time Format') ?></span></legend>
266<?php
267
268        $time_formats = apply_filters( 'time_formats', array(
269                __('g:i a'),
270                'g:i A',
271                'H:i',
272        ) );
273
274        $custom = TRUE;
275
276        foreach ( $time_formats as $format ) {
277                echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='time_format' value='" . esc_attr($format) . "'";
278                if ( get_option('time_format') === $format ) { // checked() uses "==" rather than "==="
279                        echo " checked='checked'";
280                        $custom = FALSE;
281                }
282                echo ' /> ' . date_i18n( $format ) . "</label><br />\n";
283        }
284
285        echo '  <label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"';
286        checked( $custom );
287        echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option('time_format') ) . '" class="small-text" /> ' . date_i18n( get_option('time_format') ) . "\n";
288?>
289        </fieldset>
290</td>
291</tr>
292<tr>
293<th scope="row"><label for="start_of_week"><?php _e('Week Starts On') ?></label></th>
294<td><select name="start_of_week" id="start_of_week">
295<?php
296for ($day_index = 0; $day_index <= 6; $day_index++) :
297        $selected = (get_option('start_of_week') == $day_index) ? 'selected="selected"' : '';
298        echo "\n\t<option value='" . esc_attr($day_index) . "' $selected>" . $wp_locale->get_weekday($day_index) . '</option>';
299endfor;
300?>
301</select></td>
302</tr>
303<?php do_settings_fields('general', 'default'); ?>
304<?php
305
306$lang_files = array();
307if ( is_multisite() && is_dir( ABSPATH . LANGDIR ) && $dh = opendir( ABSPATH . LANGDIR ) ) {
308        while ( ( $lang_file = readdir( $dh ) ) !== false ) {
309                if ( substr( $lang_file, -3 ) == '.mo' )
310                        $lang_files[] = $lang_file;
311        }
312}
313
314if ( !empty($lang_files) ) {
315?>
316        <tr valign="top">
317                <th width="33%" scope="row"><?php _e('Blog language:') ?></th>
318                <td>
319                        <select name="WPLANG" id="WPLANG">
320                                <?php mu_dropdown_languages( $lang_files, get_option('WPLANG') ); ?>
321                        </select>
322                </td>
323        </tr>
324<?php
325} // languages
326?>
327</table>
328
329<?php do_settings_sections('general'); ?>
330
331<p class="submit">
332<input type="submit" name="Submit" class="button-primary" value="<?php esc_attr_e('Save Changes') ?>" />
333</p>
334</form>
335
336</div>
337
338<?php include('./admin-footer.php') ?>