Пропустить

Guess Timezone (Автоматическое определение часового пояса)

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Guess Timezone (Автоматическое определение часового пояса)

Сообщение Nekstati » 28.06.2010 17:26

Guess Timezone

Автоматическое определение часового пояса пользователя.
Автоматический перевод на летнее время.

Мод работает как для авторизованных пользователей, так и для гостей. Информация о часовом поясе и летнем времени берётся непосредственно из компьютера пользователя (через cookies). По умолчанию автоопределение включено для всех пользователей. Его можно отключить в личном разделе и задать часовой пояс вручную. Для гостей автоопределение можно отключить в администраторском разделе.

Тема на phpBB.com
Поправка для phpBB 3.0.7PL1
Русская локализация
Последняя версия мода: 1.0.1.

Изображение

В этом архиве — мод с уже внесённой поправкой и русской локализацией. Можно устанавливать Автомодом.

guess_timezone_101.zip
(55.66 КБ) Скачиваний: 151


Рекомендую. Удобная вещь. Изображение
За это сообщение автора Nekstati поблагодарили: 5
Альтаир Бергадлер (03.11.2010 20:17), Garret_Dark (18.09.2010 19:53), Ketzer (02.11.2010 16:32), trooper (10.12.2010 19:48), Warlock75 (06.10.2010 17:01)
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Nekstati » 29.06.2010 17:04

Небольшое добавление. Куки, устанавливаемые данным модом, действуют до конца сеанса. Поэтому если закрыть браузер, а затем вновь открыть и перейти на форум, то автоопределение часового пояса в первый момент не сработает, оно сработает лишь после обновления страницы форума или при переходе по любой внутренней ссылке. Чтобы исправить этот недостаток, надо устанавливать куки не до конца сеанса, а на длительный срок. Например, на год. Для этого сделайте вставку в overall_header.html не так, как написано в инструкции, а следующим образом:
<!-- IF U_TIME_COOKIE -->
	var now = new Date();
	var january = (new Date(now.getFullYear(), 1, 1)).getTimezoneOffset();
	var today = now.getTimezoneOffset();
	// we use January since DST usually isn't in effect during January
	now.setTime(now.getTime() + 1000 * 3600 * 24 * 365);
	document.cookie = '{U_TIME_COOKIE}_time[zone] = ' + (-january / 60) + '; expires=' + now.toGMTString();
	document.cookie = '{U_TIME_COOKIE}_time[dst] = ' + (january != today ? 1 : 0) + '; expires=' + now.toGMTString();
<!-- ENDIF -->
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение FladeX » 29.06.2010 17:22

Имхо для этих целей более удобен мод Automatic DST 2. Во всяком случае, там никаких кукисов нет, все гораздо проще и удобнее.
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
Аватара пользователя
FladeX
Former team member
 
Сообщения: 2079
Зарегистрирован: 02.06.2007 23:44
Откуда: Саранск
Благодарил (а): 6 раз.
Поблагодарили: 53 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Nekstati » 29.06.2010 23:19

Это разные вещи. Automatic DST определяет летнее время по вручную установленному часовому поясу, а Guess Timezone автоматически определяет часовой пояс и летнее время. Почувствуй разницу.

Кстати, в Automatic DST есть дыра. Когда в каком-то регионе отменяют летнее время или изменяют часовой пояс, Automatic DST не может этого учесть до тех пор, пока хостер не сподобится обновить PHP или tz_database. Например, этой весной изменились пояса в Самаре, на Камчатке и Чукотке, а у хостеров до сих пор стоят старые таблицы поясов (проверила на двух хостингах). В результате, если юзер из Самары выбирает часовой пояс «Samara», то Automatic DST выдаёт ему неправильное время. А Guess Timezone учитывает все перемены в поясах после первого же обновления Windows на компе юзера.

К тому же Automatic DST заменяет стандартный вид поясов типа «[UTC+6] Омск» на список городов без указания пояса, типа «Азия/Omsk», а это означает, что Василиса Потаповна из Поповки, отсутствующей в списке, не сможет там найти свой пояс. А если и сможет, то лишь методом тыка. Если же на форуме используется Guess Timezone, то Василисе Потаповне вообще ничего не надо знать о часовых поясах, всё сделается само.

Ну а недостаток Guess Timezone в том, что Javascript и cookies у юзера должны быть непременно включены, иначе время будет выводиться стандартным для phpBB3 методом.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Garret_Dark » 19.09.2010 21:23

Nekstati, очень полезная вещь, давно искал нечто подобное

Чтото только меняю в винде время (на произвольное), а на форуме так и отображается Московское, вроде ведь должно браться с моего компьютера?
Аватара пользователя
Garret_Dark
phpBB 2.0.22
 
Сообщения: 751
Зарегистрирован: 11.01.2009 16:18
Благодарил (а): 91 раз.
Поблагодарили: 77 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Nekstati » 19.09.2010 22:25

С компьютера берётся часовой пояс, а не время.
За это сообщение автора Nekstati поблагодарил:
Garret_Dark (19.09.2010 22:48)
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение mart » 24.10.2010 20:18

Ставою автомодом
Выдает:


includes/session.php
Найти
		if ((@include $this->lang_path
		{
			die('Language file '
		} 

Добавить после
		switch (true)
		{
			case $this->data['user_id'] != ANONYMOUS && $this->data['use_browser']:
			case $this->data['user_id'] == ANONYMOUS && $config['use_client_browser']:
				if (isset($_COOKIE[$config['cookie_name'] . '_time']['dst']) && isset($_COOKIE[$config['cookie_name'] . '_time']['zone']))
				{
					$temp = $_COOKIE[$config['cookie_name'] . '_time']['zone'];
					if (!isset($lang['tz'][$temp]))
					{
						break;
					}
					$this->timezone = $temp * 3600;
					$this->dst = ((bool) $_COOKIE[$config['cookie_name'] . '_time']['dst']) * 3600;
				}
		} 

Заданный аргумент поиска не найден
Последний раз редактировалось MIT 24.10.2010 20:23, всего редактировалось 1 раз.
Причина: Тег [code] и для тебя тоже

mart
phpBB 1.0.0
 
Сообщения: 1
Зарегистрирован: 24.10.2010 20:15
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Палыч » 24.10.2010 20:35

mart
А глаза разуть?
Инструкция предназначена для phpBB 3.0.4 (если версия мода 1.0.1, а 1.0.0 и вообще для phpBB 3.0.2)
В phpBB версии 3.0.7 код в файле includes/session.php изменился.
        // Do not suppress error if in DEBUG_EXTRA mode
        
$include_result = (defined('DEBUG_EXTRA')) ? (include $this->lang_path $this->lang_name "/common.$phpEx") : (@include $this->lang_path $this->lang_name "/common.$phpEx");

        if (
$include_result === false)
        {
            die(
'Language file ' $this->lang_path $this->lang_name "/common.$phpEx" " couldn't be opened.");
        } 
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Палыч
Просто Палыч
Просто Палыч
 
Сообщения: 9471
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 337 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение bulka » 01.11.2010 22:56

Перед внесением изменений в файлы конференции необходимо выполнить след. запрос:

ALTER TABLE phpbb_users ADD use_browser tinyint(1) UNSIGNED DEFAULT '1' NOT NULL;
INSERT INTO phpbb_config (config_name, config_value) VALUES ('use_client_browser', '1');

Вопрос след. характера: насколько сложно реализовать php-файл (например, install/index.php), который сам выполнит подобный запрос в БД из корня сайта? Я совершенно не разбираюсь в этом, прошу помощи у вас :)
Последний раз редактировалось bulka 02.11.2010 12:53, всего редактировалось 1 раз.

bulka
phpBB 1.2.0
 
Сообщения: 14
Зарегистрирован: 15.10.2010 17:18
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение MAzZY » 01.11.2010 23:02

Аватара пользователя
MAzZY
Former team member
 
Сообщения: 2952
Зарегистрирован: 14.05.2005 23:43
Благодарил (а): 61 раз.
Поблагодарили: 54 раз.
Предупреждения: 1

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Ketzer » 03.11.2010 17:22

Прикрутил мод, выявилась одна странность - меняешь на компе часовой пояс - заходишь под гостем на форум на страницу регистрации - при UTC+4 часовой пояс автоопределяется нормально, при остальных значениях (+7, например) - нет, выставляет все те же UTC+3

При этом если войти под пользователем и в личном кабинете нажать кнопку автоопределения - определяет правильно.

При проверке все куки/кеш соответственно чистились.

Ketzer
phpBB 1.2.0
 
Сообщения: 12
Зарегистрирован: 19.03.2010 21:19
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Ketzer » 04.11.2010 1:31

Как выяснилось, в инструкции для шаблона subSilver2 (а именно для файла styles/subsilver2/template/ucp_register.html) есть строчка, из-за которой не срабатывает автоопределение:

onload_functions.push('guessTimezone()');
- это годится лишь для шаблонов на основе proSilver

Поменял ее на
window.onload = function () {
	guessTimezone();
}

и в
<td class="row2"><select name="tz">{S_TZ_OPTIONS}</select></td>

добавил id="tz":
<td class="row2"><select name="tz" id="tz">{S_TZ_OPTIONS}</select></td>


и все ОК

Ketzer
phpBB 1.2.0
 
Сообщения: 12
Зарегистрирован: 19.03.2010 21:19
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Garret_Dark » 17.11.2010 12:43

Nekstati писал(а):С компьютера берётся часовой пояс, а не время.


Наверно стоит реализовать мод так (если так можно), чтобы бралось время, а не ЧП. Я вот за последний месяц побывал в четырех часовых поясах и посидел за множеством компьютеров и практически во всех них стоял часовой пояс +3 (Москва) и просто было настроено местное время :?
Аватара пользователя
Garret_Dark
phpBB 2.0.22
 
Сообщения: 751
Зарегистрирован: 11.01.2009 16:18
Благодарил (а): 91 раз.
Поблагодарили: 77 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Nekstati » 17.11.2010 14:49

Это к автору. В принципе можно.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Guess Timezone (Автоматическое определение часового пояс

Сообщение Nibiru » 04.12.2010 23:38

у меня автомод ловит сразу Guess Timezone - subSilver2 и устанавливает только его, а основной файл установки не хочет, с чем это связано?
Бесят девки, которые понтуются тем, что пьют и курят! Ты спортом займись, Овца, и гордись этим!
Аватара пользователя
Nibiru
phpBB 2.0.0
 
Сообщения: 115
Зарегистрирован: 25.06.2008 6:55
Откуда: Russia & Slovensko
Благодарил (а): 5 раз.
Поблагодарили: 1 раз.
Предупреждения: 1

След.

Вернуться в Поддержка модов для phpBB 3.0.x

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы