DateAgo: как перенести часы и минуты создания материала на следующую строку?
Добрый день! Необходимо вывести день, месяц, год создания материала на одной строке, а часы и минуты на другой.
Вывожу так:
Вывожу так:
[[+publishedon:dateAgo=`{"dateNow":0, "dateFormat":"d F Y, H:i"}`]]
что приводит к выводу полной даты на одной строке09 июля 2018, 19:10
Мне нужно так:09 июля 2018,
19:10
Тег br, если задать его здесь «dateFormat»:«d F Y, H:i», после запятой, не работает. Комментарии: 5
Можно например так:
[[+publishedon:dateAgo=`{"dateNow":0, "dateFormat":"d F Y,"}`]]
[[+publishedon:dateAgo=`{"dateNow":0, "dateFormat":"H:i"}`]]
Спасибо. Этот вариант у меня был предусмотрен, но применять его я хотел в последнюю очередь. Мне казалось, что есть способ решить это в пределах одного вызова сниппета.
Постобработка результата должна сработать.
Пример на Fenom (перед br убери пробел, тут его преобразовывает в перенос строки):
Пример на Fenom (перед br убери пробел, тут его преобразовывает в перенос строки):
{$publishedon|dateago:'{"dateNow":0, "dateFormat":"d F Y, H:i"}'|replace:', ':',< br>'}
Интересный вариант. Спасибо! Работает!
Небольшой фикс для мультиязычных сайтов. Проблема в том что на других контекстах сниппет возвращал некорректный текст для «5 часа назад». Заходим в core/components/dateago/include/declension.php
ищем строчку 19:
ищем строчку 19:
if ($lang == 'ru') {
Изначально не разобрался и написал Василию не правильное решение, но сегодня решил по другому — заменяем строчку на:$ctxKey = $modx->context->key;
$ctx = $modx->getContext($ctxKey);
$curLang = $ctx->getOption('cultureKey', null, 'default');
if($lang == $curLang){
На самом деле проще убрать этот блок проверки вовсе, либо проверять как if($lang != 'test'), либо просто добавить в условие: if ($lang == 'ru' || $lang == 'de' || $lang == 'en') {
...
}
Думаю стоит добавить в вызове как сниппета так и модификатора возможность указания тех языков, которые хочешь обрабатывать в данном условии.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.