Два дня возился с форматом вывода даты в modx через pdoPage. Бывало один и тот же код в сайдбаре отображался, а на странице нет. В сети все решения были почти одинаковые и ничего не помогало. В этой статье хочу описать вам несколько вариантов вывода даты в modx revolution (у меня версия 2.5.7-pl).
Сначала я хотел вывести дату с Дополнительного поля (там Параметры ввода и вывода “Дата”, формат %d.%m.%Y). Долго возился с форматом, не выводило как нужно. Также хотел вывести дату публикации, но опять безуспешно. Гуглил, копировал вроде бы рабочий код, но он не отображался. Пока не увидел один совет – вывести код в чанк.
И тогда все заработало. И в сайдбаре, и на странице, все как нужно. Выводил через pdoMenu и pdoPage.
Как вывести дату через pdoPage в modx revolution
Для сайдбара создал чанк sideall со следующим кодом:
<a href="[[+uri]]">[[+pagetitle]] - [[+status]]. [[+publishedon:date=`%d.%m.%Y`]]</a>
Где:
uri – url страницы,
pagetitle – заголовок страницы,
status – дополнительное поле (текст),
publishedon – дата публикации. %d – день, %m – месяц, %Y – год.
Дальше в коде для сайдбара прописал код для pdoMenu:
[[pdoMenu?
&parents=`76`
&level=`1`
&includeTVs=`status, start, minimum`
&tpl=`sideall`
&limit=`10`
&sortdir=`DESC`
&sortby=`publishedon`
]]
Получили следующий вывод.

1 – вывод в сайдбаре.
2 – вывод на странице.
Для страницы использовал следующий код шаблона (в чанке shabindex):
<li>[[+publishedon:date=`%d.%m.%Y`]] <a href="[[+uri]]">[[+pagetitle]]</a>: [[+tv.status]] : от [[+tv.start:strtotime:date=`%d.%m.%Y`]]: минимум [[+tv.minimum]]</li>
А для вывода на странице использовал PdoPage:
[[!pdoPage? &parents=`76` &includeTVs=`status, start, minimum` &tpl=`shabindex` &pageLimit=`10` ]]
В чем разница с strtotime и без в дате modx revolution?
Как видите, выше я писал для даты публикации
[[+publishedon:date=`%d.%m.%Y`]]
и для дополнительного поля
[[+tv.start:strtotime:date=`%d.%m.%Y`]]
Все дело в том, что дата хранится в разном формате. И при выводе через pdoPage в modx для publishedon не надо переводить “строку во время”, а для дополнительного поля с Параметром ввода Дата – надо.

