Разве изменение пользовательского языкового стандарта Drupal не должно также изменять $ user-> timezone? - PullRequest
0 голосов
/ 19 января 2011

Я, должно быть, здесь упускаю что-то действительно очевидное:

У меня есть пользователь, для которого установлен язык Америки / Лос-Анджелес.Когда я смотрю в таблицу базы данных пользователей, они имеют значение -28800 для поля часового пояса.Это имеет смысл;За 8 часов до GMT = -28800 секунд.

Но теперь, когда пользователь меняет свой язык на Америку / Нью-Йорк, значение часового пояса остается прежним, а не переключается на -18000, за 5 часов до GMT.Почему это изменение не происходит?Если я смотрю не в том месте, где я могу найти значение часового пояса, соответствующее их локали?

Часовой пояс сервера также установлен на Америку / Лос-Анджелес, если это имеет значение.Спасибо!

Ответы [ 2 ]

0 голосов
/ 20 января 2011

ARGGH - ЛОЖНАЯ ТРЕВОГА.Так же, как я заканчивал все это, я подумал, что, возможно, стоит проверить еще один из моих сайтов на Drupal, чтобы посмотреть, что там происходит с $ user-> timezone.Оказывается, что он работает правильно - измените локаль на странице редактирования пользователя и $ user-> timezone измените, как следует.Таким образом, я трахаю собаку где-то на моем текущем сайте;Сам Друпал вроде бы ок.Извиняюсь за трату вашего времени;но большое спасибо в любом случае.

0 голосов
/ 20 января 2011

Звучит как ошибка. Какая версия Drupal? В любом случае, вы сможете довольно легко это исправить с помощью hook_user. Вам нужно будет сделать user_save и явно определить новое значение часового пояса. Это было бы что-то вроде этого:

function trnAccount_user($op, &$edit, &$account, $category = NULL) {

switch($op) {
case 'update':
  user_save($account, array('timezone' => $myTimeZone);
break;
}

$ myTimeZone является заполнителем. Сделайте print_r для входящего $ edit в этом хуке, и вы сможете найти место записи изменения часового пояса, а затем просто замените $ myTimeZone на этот путь массива (например ... $ edit ['values'] ['timezone «]). Если это не происходит вообще, значит, что-то не так с формой, которую вы используете, измените локаль.

Если вы используете форму, которую вы написали самостоятельно, вы также можете обработать это в функции отправки для этой формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...