XF 2.3 Изменить формат даты поста

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.3.6

VLADI

Проверенные
Сообщения
7
Реакции
1
Баллы
11,005
Всем привет! Никак не могу найти, как заменить в постах дату публикации вида, к примеру "Вчера 21:00" на "03.07.2005 21:00".
Т.е. мне нужно убрать все эти "Только что", "Вчера", "Четверг" и т.д. и поставить только дату.

Screenshot_104.png
За вывод отвечает шаблон post_macros
Код строки: <xf:date time="{$post.post_date}" itemprop="{{ $includeMicrodata ? 'datePublished' : '' }}" />
Пробовал и так
{{ date($xf.time, 'd.m.Y') }}
И так:
{$post.post_date, 'd.m.Y'}
Но выдаёт ошибку синтаксиса. Может кто помочь?
 
Всем привет! Никак не могу найти, как заменить в постах дату публикации вида, к примеру "Вчера 21:00" на "03.07.2005 21:00".
Т.е. мне нужно убрать все эти "Только что", "Вчера", "Четверг" и т.д. и поставить только дату.

Посмотреть вложение 158577
За вывод отвечает шаблон post_macros
Код строки: <xf:date time="{$post.post_date}" itemprop="{{ $includeMicrodata ? 'datePublished' : '' }}" />
Пробовал и так
{{ date($xf.time, 'd.m.Y') }}
И так:
{$post.post_date, 'd.m.Y'}
Но выдаёт ошибку синтаксиса. Может кто помочь?
Привет.
Попробуй изменить код в шаблоне post_macros следующим образом:
HTML:
<xf:date time="{$post.post_date}" format="d.m.Y H:i" itemprop="{{ $includeMicrodata ? 'datePublished' : '' }}" />


Не уверен, но вдруг тебе поможет.
 
Привет! К сожалению, не помогло(
Жаль :(. Попробовал у себя разными методами, но ничего не получилось так-же. Дальше не стал копаться в шаблонах ибо не хватает навыка и знание кода. Может кто ответит в теме ещё.
 
У меня все нормально показывает
Значит, разница в версиях, либо в шаблонах. Но у меня дефолтный.
Решил пойти неправильным путём: залез в /src/XF/Template/Templater.php. Там есть строка: . '"' . $unhandledAttrs . '>' . htmlspecialchars($relative) . '</time>';
Заменил $relative на $full
А дальше такой прикол: на долю секунды показывается правильный формат и тут же подменяется другим. В исходном коде формат правильный. Значит время подставляется через js. Копаю дальше
 
Значит, разница в версиях, либо в шаблонах. Но у меня дефолтный.
Решил пойти неправильным путём: залез в /src/XF/Template/Templater.php. Там есть строка: . '"' . $unhandledAttrs . '>' . htmlspecialchars($relative) . '</time>';
Заменил $relative на $full
А дальше такой прикол: на долю секунды показывается правильный формат и тут же подменяется другим. В исходном коде формат правильный. Значит время подставляется через js. Копаю дальше
Версия движка: 2.3.6
Стиль: Default style
Шаблон: post_macros

Заменил:
Код:
<xf:date time="{$post.post_date}" itemprop="{{ $includeMicrodata ? 'datePublished' : '' }}" />

На
Код:
{{ date($post.post_date, 'd.m.Y H:i') }}

Результат: Screenshot_20250704_203858_Chrome.jpg
 
Версия движка: 2.3.6
Стиль: Default style
Шаблон: post_macros

Заменил:
Код:
<xf:date time="{$post.post_date}" itemprop="{{ $includeMicrodata ? 'datePublished' : '' }}" />

На
Код:
{{ date($post.post_date, 'd.m.Y H:i') }}

Результат: Посмотреть вложение 158581

Блин, да, я немного не так ставил. Стормозил, и уже на контроллере переписал вывод.
Своего добился конешь, но возвращаю контроллер в исходную, спасибо, работает!)
 
Может кто помочь?
Я снова вернулся. И теперь я могу с уверенностью тебе помочь. Я подготовил тему, которую выложил себе на форум и оставил данное обновление у себя на форуме, спасибо за идею. P.S. Всю голову себе сломал, но у меня получилось.

Кастомизация формата дат и времени на форуме

Описание:
Эта модификация изменяет формат отображения дат на форуме XenForo 2.3.6, заменяя относительный формат ("Вчера в 21:57", "20 Июн 2025") на абсолютный ("дд.мм.гггг чч:мм", например, "04.07.2025 21:57"). Изменения затрагивают три области форума: главную страницу (узлы форумов), списки тем внутри форумов и посты внутри тем. Модификация реализована через редактирование шаблонов XenForo (node_list_forum, thread_list_macros, post_macros) и CSS-стили, что обеспечивает совместимость с обновлениями платформы и минимальное вмешательство в код.
  • Главная страница форума: Даты в блоке последней активности узлов (node-extra) изменены с относительного формата на абсолютный.
  • Список тем: Даты создания тем и последнего сообщения в списке тем внутри форумов отображаются в формате "дд.мм.гггг чч:мм".
  • Посты в темах: Даты публикации постов также приведены к абсолютному формату.
  • Гибкость и безопасность: Изменения выполнены через шаблоны и CSS, что не требует модификации ядра XenForo и сохраняет работоспособность при обновлениях.

Найти:
HTML:
<li><xf:date time="{$extras.last_post_date}" class="node-extra-date" /></li>
Заменить на:
HTML:
<li><span class="custom-date" data-timestamp="{$extras.last_post_date}">{{ date($extras.last_post_date, 'd.m.Y H:i') }}</span></li>
Найти:
HTML:
<a href="{{ link('threads/latest', $thread) }}" rel="nofollow"><xf:date time="{$thread.last_post_date}" class="structItem-latestDate" /></a>
Заменить на:
HTML:
<a href="{{ link('threads/latest', $thread) }}" rel="nofollow"><span class="custom-date" data-timestamp="{$thread.last_post_date}">{{ date($thread.last_post_date, 'd.m.Y H:i') }}</span></a>

Найти:
HTML:
<li class="structItem-startDate"><a href="{{ link('threads', $thread) }}" rel="nofollow"><xf:date time="{$thread.post_date}" /></a></li>
Заменить на:
HTML:
<li class="structItem-startDate"><a href="{{ link('threads', $thread) }}" rel="nofollow"><span class="custom-date" data-timestamp="{$thread.post_date}">{{ date($thread.post_date, 'd.m.Y H:i') }}</span></a></li>

Найти:
HTML:
<li><xf:date time="{$thread.last_post_date}" /></li>
Заменить на:
HTML:
<li><span class="custom-date" data-timestamp="{$thread.last_post_date}">{{ date($thread.last_post_date, 'd.m.Y H:i') }}</span></li>

Найти:
HTML:
<li><xf:date time="{$thread.post_date}" /></li>
Заменить на:
HTML:
<li><span class="custom-date" data-timestamp="{$thread.post_date}">{{ date($thread.post_date, 'd.m.Y H:i') }}</span></li>

Найти:
HTML:
<li class="u-concealed">
    <a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" rel="nofollow" {{ $includeMicrodata ? 'itemprop="url"' : '' }}>
        <xf:date time="$post.post_date" itemprop="{{ $includeMicrodata ? 'itemprop="datePublished"' : '' }}" />
    </a>
</li>
Заменить на:
HTML:
<li class="u-concealed">
    <a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" rel="nofollow" {{ $includeMicrodata ? 'itemprop="url"' : '' }}>
        <span class="custom-date" data-timestamp="{$post.post_date}" {{ $includeMicrodata ? 'itemprop="datePublished"' : '' }}>{{ date($post.post_date, 'd.m.Y H:i') }}</span>
    </a>
</li>

Инструкция по установке:
Чтобы применить кастомизацию формата дат на форуме XenForo 2.3.6, выполните следующие шаги:
  • Перейдите в админ-панель вашего форума XenForo: Внешний вид → Стили → выберите активный стиль → Шаблоны.
    Откройте и отредактируйте следующие шаблоны:
  • node_list_forum: Найдите и замените строку для даты в блоке node-extra, как указано в коде выше.
  • thread_list_macros: Замените строки для дат в макросах item, item_new_posts и item_new_threads, как указано.
  • Очистите кэш шаблонов: Инструменты → Перестроить кэш. Если используете серверное кэширование (Redis, Memcached), очистите его.
  • Проверьте результат в режиме инкогнито или после очистки кэша браузера.
Рекомендую протестировать изменения на всех страницах (главная, списки тем, посты) и устройствах (десктоп, мобильные).

Примечания:
  • Использование {{ date(...) }} вместо <xf:date> позволяет избежать вмешательства JavaScript XenForo (класс u-dt), который преобразует даты в относительный формат.
  • JavaScript в каждом шаблоне добавлен для надёжности, чтобы гарантировать форматирование дат даже при сбоях рендеринга {{ date(...) }}.
  • Если даты не отображаются или отображаются в относительном формате, проверьте:
  • Сохранены ли изменения в правильной теме (активный стиль).
  • Очищен ли кэш шаблонов и сервера.

Совместимость:
Модификация протестирована на XenForo 2.3.6 с использованием аддона SV/MultiPrefix и [MMO] Hide Bb-Code Content System. Если вы используете кастомную тему, убедитесь, что редактируете шаблоны в активном стиле.

Пожалуйста, не забудьте сделать резервную копию файлов и базы данных перед внесением изменений!
1751652258846.png


1751652303637.png


1751652335472.png


1751652354112.png
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу