Формат даты для гостей

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Сообщение #1 Xisp » 12.10.2013, 02:38

Как я понимаю, настройка формата даты для гостей через "Админка"- "Управление пользователями"- галочка "Выбрать гостя"- и там "Личные настройки" не работает.
Для гостей используется формат даты по умолчанию. Но он распространяется на всех новых зарегистрированных пользователей, так что нужно это как- то разделить.
Xisp
Автор темы
Репутация: 9
С нами: 10 лет 11 месяцев

Сообщение #2 VEG » 12.10.2013, 02:45

Не понимаю, зачем это может быть нужно?
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #3 Xisp » 12.10.2013, 03:16

У меня на форуме небольшой (порою больше 100 гостей за 5 минут) наплыв посетителей. Сервер не справляется (слабоват, ага), и я поставил мод Cache Guests Pages. С ним стало намного лучше, 500 ошибки пропали, гости сразу получают готовые страницы или 304 заголовок, если она не изменилась. Но само собой формат даты "5 минут назад" для страниц, которые кешируются на сутки, не подходит, и я пробовал его сменить на более подходящий. Остальное в стартовом посте.
Xisp
Автор темы
Репутация: 9
С нами: 10 лет 11 месяцев

Сообщение #4 sag-sag » 12.10.2013, 12:08

Xisp:порою больше 100 гостей за 5 минут
Могу ошибаться)))), но эти 100 гостей обычные спам боты... Могу даже лог показать)))
sag-sag M
Аватара
Репутация: 411
С нами: 10 лет 7 месяцев

Сообщение #5 VEG » 12.10.2013, 12:16

Откройте файл ./includes/session.php, найдите такой код:
Код: Выделить всё
      if ($this->data['user_id'] != ANONYMOUS)
      {
         $this->lang_name = (!$config['override_user_lang'] && file_exists($this->lang_path . $this->data['user_lang'] . "/common.$phpEx")) ? $this->data['user_lang'] : basename($config['default_lang']);
         $this->date_format = ($config['override_user_dateformat']) ? $config['default_dateformat'] : $this->data['user_dateformat'];
         $this->timezone = ($config['override_user_timezone'] ? $config['board_timezone'] : $this->data['user_timezone']) * 3600;
         $this->dst = ($config['override_user_dst'] ? $config['board_dst'] :$this->data['user_dst']) * 3600;
      }
      else
      {
         $this->lang_name = basename($config['default_lang']);
         $this->date_format = $config['default_dateformat'];
         $this->timezone = $config['board_timezone'] * 3600;
         $this->dst = $config['board_dst'] * 3600;
Здесь как раз и заложена логика выбора формата даты. Как видите, для гостей всегда используются значения по умолчанию. Замените здесь строчку:
Код: Выделить всё
$this->date_format = $config['default_dateformat'];
на:
Код: Выделить всё
$this->date_format = ($config['override_user_dateformat']) ? $config['default_dateformat'] : $this->data['user_dateformat'];
По идее после такого изменения формат даты должен браться из профиля анонимного пользователя для гостей. Не тестировал.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #6 Xisp » 12.10.2013, 19:05

sag-sag:Могу ошибаться)))), но эти 100 гостей обычные спам боты...

Нет это пользователи. Хотя сейчас вроде больше 50 не собираются.

VEG:По идее после такого изменения формат даты должен браться из профиля анонимного пользователя для гостей.

Вот, теперь нормально работает :smile:
Xisp
Автор темы
Репутация: 9
С нами: 10 лет 11 месяцев


Вернуться в Поддержка 1.x