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», после запятой, не работает.
Константин
13 июля 2018, 14:31
245
0

Комментарии: 5

Андрей
13 июля 2018, 14:58
0
Можно например так:
[[+publishedon:dateAgo=`{"dateNow":0, "dateFormat":"d F Y,"}`]]   
[[+publishedon:dateAgo=`{"dateNow":0, "dateFormat":"H:i"}`]]
    Константин
    13 июля 2018, 15:09
    0
    Спасибо. Этот вариант у меня был предусмотрен, но применять его я хотел в последнюю очередь. Мне казалось, что есть способ решить это в пределах одного вызова сниппета.
Василий Столейков
13 июля 2018, 18:58
2
+1
Постобработка результата должна сработать.
Пример на Fenom (перед br убери пробел, тут его преобразовывает в перенос строки):
{$publishedon|dateago:'{"dateNow":0, "dateFormat":"d F Y, H:i"}'|replace:', ':',< br>'}
    Константин
    13 июля 2018, 19:34
    0
    Интересный вариант. Спасибо! Работает!
Небольшой фикс для мультиязычных сайтов. Проблема в том что на других контекстах сниппет возвращал некорректный текст для «5 часа назад». Заходим в core/components/dateago/include/declension.php
ищем строчку 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') {
...
}
Думаю стоит добавить в вызове как сниппета так и модификатора возможность указания тех языков, которые хочешь обрабатывать в данном условии.