MODx: решение проблемы 1970. Форматирование дат по-русски.
Задача: привести в порядок даты после обновления CMS.
Имеем: все даты в анонсах статей превратились в "тыкву": 01.01.1970.
Вот как это выглядит:
Что делать:
заменяем вызов даты, чем бы он у вас ни был, таким сниппетом (у меня он называется data-ru):
setlocale(LC_ALL, 'ru_RU.UTF-8'); $idm = (isset($idm)) ? $idm : '2288'; $format = isset($format) ? $format : "%d %b %Y %H:%M"; $art = $modx->getDocumentObject('id',$idm); if (!isset($date)){ $date = $art['editedon']; } return strftime($format, $date);
Сниппет одинаково хорошо работает и для Revolution, и для Evolution. Вызов сниппета на странице, где нужно вывести дату (в моем случае — в чанке, выводящем анонс статьи) для Evo:
[!data-ru? &idm=`[+id+]`!]
Получаем такую картину:
Иногда причина неприятности кроется в том, что мы пытаемся вывести пустое поле, например, незаполненное значение editedon.
В этом случае можно использовать PHx для простой проверки. Вот как это выглядит для MODx Revo:
[[+editedon:is=``:then=`[[+createdon]]`:else=`[[+editedon]]`]]`]]
Вот и всё, и чтобы эта статья была чуть побольше, добавлю ссылку на другую публикацию: MODx Cloud. Как создать сайт на MODx за 10 минут
Данный рецепт подходит и для Evolution, и для Revolution, также он полезен тем, кому нужно вывести дату на русском языке.
Ответственный за контент — Сергей.
Следующая статья: YML для староверов MODx Evolution https://capweb.ru/yml-yandex-modx-evolution.html
Предыдущая статья: Тренды логотипов 2021 https://capweb.ru/trendy-logotipov-2021.html