Центр пользователя  |  Ваши сообщения  |  FAQ
Форум поддержки phpBB » phpBB 3.1.x » Поддержка phpBB 3.1.x

Корректное отображение даты при использовании в Экстеншенах

Помощь в установке, настройке и использовании phpBB 3.1.x

Сообщение 20 дек 2015, 12:00

Доброго времени суток!
У меня следующая проблема:
Есть phpbb 3.1.6. Установлен Экстеншн "Top Ten Topics" позволяющий выводить на главную страницу блок с тремя колонками, в которых находится информация:
о новых постах
о постах со свежими ответами
о популярных постах.
Информация выводится в виде: тема поста или последнего реплая в виде гиперссылки + имя автора.
Я решил немного модифицировать Экстеншн, и добавить к свежим постам и, постам с последними ответами, информацию о времени события и столкнулся с такой трудностью:
я хочу, что бы дата выводилась в формате "день имямесяца год" так, как выводится на главной вне зависимости, авторизован пользователь или нет.

Получается следующее:
В файле Экстеншна, ответственного за формирование списка (listener.php) идут объявления и конструкции:
Код: выделить все
...
protected $user;
...
$this->user = $user;


Дальше у меня получается ерунда:
если я пытаюсь получить значение даты и времени поста вот так:

Код: выделить все
$last_post_time[$n4]= $user->format_date($row4['topic_last_post_time']);


я получаю краш.

если так:

Код: выделить все
$last_post_time[$n4]= $this->user->format_date($row4['topic_last_post_time']);


вылетает ошибка:

[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/user.php on line 729: DateTime::setTimezone() expects parameter 1 to be DateTimeZone, null given
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/datetime.php on line 156: array_filter() expects parameter 1 to be array, null given
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/datetime.php on line 120: strtr(): The second argument is not an array


и в конце:

[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)


Не могу понять, что я делаю неправильно и почему я не могу вызвать format_date

Пошел по пути наименьшего сопротивления, сделал вот так:

Код: выделить все
$last_post_time[$n4]= strftime('%b',$row4['topic_last_post_time']);


месяц выдает вот так: "Dec" а надо "Дек"

прочитал в документации, что нужно сделать:
Код: выделить все
setlocale(lc_time,ru_RU)


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

В общем, запутался.
drweiss
Новичок
 
Сообщений: 1
Зарегистрирован:
20 дек 2015, 11:40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

 


  • Похожие темы
    Ответов
    Просмотров
    Последнее сообщение

Кто сейчас на форуме

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

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
авторов модов
разработчиков скинов
русификаторов
и всех поклонников phpBB3