1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.4.x pubDate в RSS

Тема в разделе "Основные вопросы по XenForo", создана пользователем DiffuSer, 25.12.2014.

Загрузка
  1. DiffuSer

    DiffuSer Местный

    Регистрация:
    28.04.12
    Сообщения:
    7
    Симпатии:
    1
    Версия XF:
    1.4.8
    Как и тут (на xf-russia) у меня не действует часовой пояс для ленты RSS. Т.е. я публикую пост в 4 часа ночи, а в ленте он идет в 01:00 +0000. Как это исправить? Иначе при импорте VK.com постоянно игнорирует сообщения и ничего не постит.
     
  2. DiffuSer

    DiffuSer Местный

    Регистрация:
    28.04.12
    Сообщения:
    7
    Симпатии:
    1
    Версия XF:
    1.4.8
    Поменял зону для PHP, mySQL и Apache. Всё равно на выходе RSS дает в UTC. Как это исправить?
     
  3. Exile

    Exile Местный

    Регистрация:
    27.06.11
    Сообщения:
    997
    Симпатии:
    545
    Версия XF:
    1.4.4
    Как утверждают разработчики на форуме - это для того, чтобы RSS-клиенты пользователя сами определяли актуальный часовой пояс. Но раз уж такая потребность возникла, то...

    В файле library\XenForo\ViewPublic\Forum\GlobalRss.php есть 2 такие строки:
    PHP:
                $entry->setDateCreated(new Zend_Date($thread['post_date'], Zend_Date::TIMESTAMP));
                
    $entry->setDateModified(new Zend_Date($thread['last_post_date'], Zend_Date::TIMESTAMP));
    Согласно документации ZF, можно временную зону поставить несколькими вариантами: http://framework.zend.com/manual/1.12/ru/zend.date.additional.html

    Самый простой, как по мне, перед этими двумя строками добавить эту:
    PHP:
    date_default_timezone_set('Europe/Moscow');
    Если речь о Москве.
     
    Mirovinger нравится это.
  4. fly_indiz

    fly_indiz Местный

    Регистрация:
    20.08.11
    Сообщения:
    460
    Симпатии:
    357
    Версия XF:
    1.4.3
    Лучше чтоб rss-ка выдавала именно в utc. Т.е. по единому точному времени, можно назвать его исходным, мировым временем. Клиент, который читает rss-ку на компе уже сам приплюсует сдвиг для текущего компа на котором читается. В итоге - на любом компе в любой зоне будет отображено верное время у каждого читающего ленту. В общем разработчики не просто так это сделали.
     

Поделиться этой страницей