в MODx CMS, Разработка

Вывод даты MODx Revo

В разработке функциональности блока новостей, блога и тд. чаще всего приходится использовать вывод даты публикации документа. А именно важна сама форма выводы даты. Например: 22 Oct 2011, 11.12.2011 и тд. Много информации разбросано в интернете по этому поводу. Я решил собрать все основное в одной статье.

Итак, задача — нужно вывести дату публикации документа в анонсе в формате День (число).Месяц (словом).Год (число). Список анонсов вывести с помощью GetResources.

Решение очень простое. В шаблоне вывода ресурсов (указывается в параметре &tpl=`имя_чанка_шаблона`) пишем следущее:

<a href=»[[~[[+id]]]]»>[[+pagetitle]]</a><br />
<span>[[+publishedon:strtotime:date=`%d %B %Y`]]</span>

где

<a href=»[[~[[+id]]]]»> — ссылка на анонс,
[[+pagetitle]] — заголовок страницы,

[[+publishedon:strtotime:date=`%d %B %Y`]] — вывод даты публикации с применением phx фильтра. Полное описание комбинаций вывода дат можно просмотреть на сайте PHP.

Вот и все. В результате мы получаем вывод даты публикации в нужном формате, например 20 Март 2011. Хочу заметить, что по умолчанию месяц (день, в зависимости в каком формате будет вывод) будет выведен на английском языке. Чтобы исправить эту ситуацию, нужно прописать в начале index.php в корне значение:

setlocale(LC_TIME, «ru_RU.UTF8»);

Если кодировка win-1251, то

setlocale(LC_TIME, «ru_RU.cp1251»);

Задача решена.

Написать комментарий

Комментарии

14 Комментария

  1. Попробуй прописать в сниппете getResources в самом начале это: setlocale ( LC_ALL, ‘ru_RU.UTF-8’ );
    Либо в core/config/config.inc.php
    Удачи!

  2. Для того чтоб настроить локаль, необходимо в настройках системы в разделе СЛОВАРЬ И ЯЗЫКИ в пункте
    локаль прописать: ru_RU.UTF-8

    • как настроить часовой пояс, а то время комментариев не по часовому поясу России отображается?

  3. Может вопрос не совсем в тему. Ну задам а получу ответ или нет. В общем ситуация следующая: стоит задачу изменить дату комментария под основной статьей. Как временное решение используем — изменение дату коммента в базе, но это не удобно, хотелось бы изменять прямо на самой странице… Спасибо за внимание.

    • Нужно смотреть скрипт, который создает дату комментария. В данном посте, выводится дата создания документа.

  4. Приветствую, есть вариант подсказать — как сделать чтобы месяц даты отображался на русском и в сокращенном до трех символов, к примеру, — не Feb, а Фев ?

  5. Здравствуйте, по Яндекс Вебмастере выдает возможную ошибку: Неверное значение тега lastmod в sitemap. посмотрела всю инфо в нете, наткнулась на то, что наверно проблема в дате нужно указывать в формате нужен W3C Datetime. Подскажите, что с этим делать и где поменять.
    С Уважением, Виктория

    • Здравствуйте. С Яндекс не работаю, подсказать не могу, но меняется в «шаблоне вывода ресурсов (указывается в параметре &tpl=`имя_чанка_шаблона`) пишем следущее:
      [[+publishedon:strtotime:date=`%d %B %Y`]]«. Посмотрите любую карту сайта, где Яндекс не выдает ошибки и поменяйте соответственно формат даты у себя. Вариантов множество https://www.w3.org/TR/NOTE-datetime