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
modx.pro
2 459
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
    3
    +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') {
      ...
      }
      Думаю стоит добавить в вызове как сниппета так и модификатора возможность указания тех языков, которые хочешь обрабатывать в данном условии.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        5