Changeset 10753
- Timestamp:
- 03/10/2009 12:50:00 AM (16 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/options-general.php
r10670 r10753 94 94 </tr> 95 95 <tr> 96 <?php 97 if (!wp_timezone_supported()) : // no magic timezone support here 98 ?> 96 99 <th scope="row"><label for="gmt_offset"><?php _e('Timezone') ?> </label></th> 97 100 <td> … … 128 131 <span class="setting-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> 129 132 </td> 133 <?php 134 else: // looks like we can do nice timezone selection! 135 $current_offset = get_option('gmt_offset'); 136 ?> 137 <th scope="row"><label for="timezone_string"><?php _e('Timezone') ?></label></th> 138 <td> 139 140 <select id="timezone_string" name="timezone_string"> 141 <?php echo wp_timezone_choice(get_option('timezone_string')); ?> 142 </select> 143 144 <span id="utc-time"><?php printf(__('<abbr title="Coordinated Universal Time">UTC</abbr> time is <code>%s</code>'), date_i18n(__('Y-m-d G:i:s'), false, 'gmt')); ?></span> 145 <?php if (get_option('timezone_string')) : ?> 146 <span id="local-time"><?php printf(__('Current time in %1$s is <code>%2$s</code>'), get_option('timezone_string'), date_i18n(__('Y-m-d G:i:s'))); ?></span> 147 <?php endif; ?> 148 <br/> 149 <span class="setting-description"><?php _e('Choose a city in the same timezone as you.'); ?></span> 150 </td> 151 152 <?php endif; ?> 130 153 </tr> 131 154 <tr> -
trunk/wp-admin/options.php
r10150 r10753 23 23 24 24 $whitelist_options = array( 25 'general' => array( 'blogname', 'blogdescription', 'admin_email', 'users_can_register', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'default_role' ),25 'general' => array( 'blogname', 'blogdescription', 'admin_email', 'users_can_register', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'default_role', 'timezone_string' ), 26 26 'discussion' => array( 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ), 27 27 'misc' => array( 'hack_file', 'use_linksupdate', 'uploads_use_yearmonth_folders', 'upload_path', 'upload_url_path' ), -
trunk/wp-includes/default-filters.php
r10521 r10753 204 204 add_action('init', '_show_post_preview'); 205 205 206 add_filter('pre_option_gmt_offset','wp_timezone_override_offset'); 207 206 208 ?> -
trunk/wp-includes/functions.php
r10740 r10753 3050 3050 } 3051 3051 3052 /** 3053 * gmt_offset modification for smart timezone handling 3054 * 3055 * Overrides the gmt_offset option if we have a timezone_string available 3056 */ 3057 function wp_timezone_override_offset() { 3058 if (!wp_timezone_supported()) return false; 3059 3060 $tz = get_option('timezone_string'); 3061 if (empty($tz)) return false; 3062 3063 @date_default_timezone_set($tz); 3064 3065 $dateTimeZoneSelected = timezone_open($tz); 3066 $dateTimeServer = date_create(); 3067 if ($dateTimeZoneSelected === false || $dateTimeServer === false) return false; 3068 3069 $timeOffset = timezone_offset_get($dateTimeZoneSelected, $dateTimeServer); 3070 $timeOffset = $timeOffset / 3600; 3071 3072 return $timeOffset; 3073 } 3074 3075 /** 3076 * Check for PHP timezone support 3077 * 3078 */ 3079 function wp_timezone_supported() { 3080 if (function_exists('date_default_timezone_set') 3081 && function_exists('timezone_identifiers_list') 3082 && function_exists('timezone_open') 3083 && function_exists('timezone_offset_get') 3084 ) 3085 return true; 3086 3087 return false; 3088 } 3089 3090 /** 3091 * Gives a nicely formatted list of timezone strings // temporary! Not in final 3092 * 3093 * @param string $selectedzone - which zone should be the selected one 3094 * 3095 */ 3096 function wp_timezone_choice($selectedzone) { 3097 $all = timezone_identifiers_list(); 3098 3099 $i = 0; 3100 foreach ( $all as $zone ) { 3101 $zone = explode('/',$zone); 3102 $zonen[$i]['continent'] = isset($zone[0]) ? $zone[0] : ''; 3103 $zonen[$i]['city'] = isset($zone[1]) ? $zone[1] : ''; 3104 $zonen[$i]['subcity'] = isset($zone[2]) ? $zone[2] : ''; 3105 $i++; 3106 } 3107 3108 asort($zonen); 3109 $structure = ''; 3110 $pad = ' '; 3111 3112 if ( empty($selectedzone) ) 3113 $structure .= '<option selected="selected" value="">' . __('Select a city') . "</option>\n"; 3114 foreach ( $zonen as $zone ) { 3115 extract($zone); 3116 if ( empty($selectcontinent) && !empty($city) ) { 3117 $selectcontinent = $continent; 3118 $structure .= '<optgroup label="'.$continent.'">' . "\n"; // continent 3119 } elseif ( !empty($selectcontinent) && $selectcontinent != $continent ) { 3120 $structure .= "</optgroup>\n"; 3121 $selectcontinent = ''; 3122 if ( !empty($city) ) { 3123 $selectcontinent = $continent; 3124 $structure .= '<optgroup label="'.$continent.'">' . "\n"; // continent 3125 } 3126 } 3127 3128 if ( !empty($city) ) { 3129 if ( !empty($subcity) ) { 3130 $city = $city . '/'. $subcity; 3131 } 3132 $structure .= "\t<option ".((($continent.'/'.$city)==$selectedzone)?'selected="selected "':'')." value=\"".($continent.'/'.$city)."\">$pad".str_replace('_',' ',$city)."</option>\n"; //Timezone 3133 } else { 3134 $structure .= "<option ".(($continent==$selectedzone)?'selected="selected "':'')." value=\"".$continent."\">".$continent."</option>\n"; //Timezone 3135 } 3136 } 3137 3138 if ( !empty($selectcontinent) ) 3139 $structure .= "</optgroup>\n"; 3140 return $structure; 3141 } 3142 3052 3143 3053 3144 ?>
Note: See TracChangeset
for help on using the changeset viewer.