diff options
-rw-r--r-- | phpBB/language/en/ucp.php | 1 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/timezone.js | 54 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/ucp_prefs_personal.html | 10 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/ucp_register.html | 10 |
4 files changed, 73 insertions, 2 deletions
diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php index c8ffbf31c0..9cbca4b740 100644 --- a/phpBB/language/en/ucp.php +++ b/phpBB/language/en/ucp.php @@ -399,6 +399,7 @@ $lang = array_merge($lang, array( 'SIGNATURE_EXPLAIN' => 'This is a block of text that can be added to posts you make. There is a %d character limit.', 'SIGNATURE_PREVIEW' => 'Your signature will appear like this in posts', 'SIGNATURE_TOO_LONG' => 'Your signature is too long.', + 'SELECT_TIMEZONE' => 'Select timezone', 'SORT' => 'Sort', 'SORT_COMMENT' => 'File comment', 'SORT_DOWNLOADS' => 'Downloads', diff --git a/phpBB/styles/prosilver/template/timezone.js b/phpBB/styles/prosilver/template/timezone.js new file mode 100644 index 0000000000..5d07b1d3ad --- /dev/null +++ b/phpBB/styles/prosilver/template/timezone.js @@ -0,0 +1,54 @@ +function phpbb_preselect_tz_select() +{ + var selector = document.getElementsByClassName('tz_select')[0]; + if (selector.value) + { + return; + } + // The offset returned here is in minutes and negated. + // http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp + var offset = (new Date()).getTimezoneOffset(); + if (offset < 0) + { + var sign = '+'; + offset = -offset; + } + else + { + var sign = '-'; + } + var minutes = offset % 60; + var hours = (offset - minutes) / 60; + if (hours < 10) + { + hours = '0' + hours.toString(); + } + else + { + hours = hours.toString(); + } + if (minutes < 10) + { + minutes = '0' + minutes.toString(); + } + else + { + minutes = minutes.toString(); + } + var prefix = 'GMT' + sign + hours + ':' + minutes; + var prefix_length = prefix.length; + for (var i = 0; i < selector.options.length; ++i) + { + var option = selector.options[i]; + if (option.value.substring(0, prefix_length) == prefix) + { + // Firefox scrolls the selector only to put the option into view; + // for negative-offset timezones, this means the first timezone + // of a particular offset will be the bottom one, and selected, + // with all other timezones not visible. Not much can be done + // about that here unfortunately. + option.selected = true; + break; + } + } +} diff --git a/phpBB/styles/prosilver/template/ucp_prefs_personal.html b/phpBB/styles/prosilver/template/ucp_prefs_personal.html index 635f321469..eae37b8021 100644 --- a/phpBB/styles/prosilver/template/ucp_prefs_personal.html +++ b/phpBB/styles/prosilver/template/ucp_prefs_personal.html @@ -75,7 +75,12 @@ <!-- ENDIF --> <dl> <dt><label for="timezone">{L_BOARD_TIMEZONE}:</label></dt> - <dd><select name="tz" id="timezone" class="autowidth">{S_TZ_OPTIONS}</select></dd> + <dd> + <select name="tz" id="timezone" class="autowidth tz_select"> + <option value="">{L_SELECT_TIMEZONE}</option> + {S_TZ_OPTIONS} + </select> + </dd> </dl> <dl> <dt><label for="dst1">{L_BOARD_DST}:</label></dt> @@ -141,4 +146,7 @@ // ]]> </script> +<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/timezone.js"></script> +<script type="text/javascript">phpbb_preselect_tz_select();</script> + <!-- INCLUDE ucp_footer.html --> diff --git a/phpBB/styles/prosilver/template/ucp_register.html b/phpBB/styles/prosilver/template/ucp_register.html index dd0e5ad02a..542a860f23 100644 --- a/phpBB/styles/prosilver/template/ucp_register.html +++ b/phpBB/styles/prosilver/template/ucp_register.html @@ -59,7 +59,12 @@ </dl> <dl> <dt><label for="tz">{L_TIMEZONE}:</label></dt> - <dd><select name="tz" id="tz" tabindex="7" class="autowidth">{S_TZ_OPTIONS}</select></dd> + <dd> + <select name="tz" id="tz" tabindex="7" class="autowidth tz_select"> + <option value="">{L_SELECT_TIMEZONE}</option> + {S_TZ_OPTIONS} + </select> + </dd> </dl> <!-- IF .profile_fields --> @@ -110,4 +115,7 @@ </div> </form> +<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/timezone.js"></script> +<script type="text/javascript">phpbb_preselect_tz_select();</script> + <!-- INCLUDE overall_footer.html --> |