DevCraft Документации
Руководства

Шаблоны и теги v200.1.0

Файлы .tpl темы, сценарии, обёртки, кнопка подписки и лента

Тексты не редактируются в формах админки. Источник — файлы скина:

templates/ВАША_ТЕМА/devcraft/notifications/

Отсутствующий файл берётся из Default. В настройках модуля задаются только пути к каталогам.

Плейсхолдеры подставляет ParseTemplateTags, не локальный str_replace.

Дерево

devcraft/notifications/
├── scenarios/       тело события
├── wrappers/        обёртка письма / ЛС
├── subscribe/       кнопки на сайте
├── item.tpl         строка ленты
├── item_actions.tpl кнопка «Открыть»
├── item_side_mark_read.tpl  «Прочесть» на стене (непрочитанные)
├── item_side_dismiss.tpl    «Закрыть» в колокольчике
├── wall.tpl         стена
├── badge.tpl        колокольчик
├── assets/          css / js
└── …

Сценарии (scenarios/)

ФайлКогда
news_update.tplподписчики news: новость изменена
news_published.tplподписчики cat / user / tag / xfield / all: новая публикация
moderation_approve.tplавтору: материал одобрен
moderation_reject.tplавтору: снят с публикации
comment_reply.tplответ на комментарий
comment_on_news.tplкомментарий к вашей новости
mention.tplупоминание @ник

Теги сценариев и обёрток

Пишутся в scenarios/*.tpl и wrappers/*.tpl.

ТегЗначение
{title}заголовок новости
{full-link}URL полной новости
{user}автор новости (в mention — упомянутый ник)
{sender}инициатор события
{message}уже собранный текст сценария (в wrapper)
{unsubscribe-url}подписанная ссылка отписки для письма/ЛС

Если в событии есть строка новости, дополнительно доступны штатные теги DLE (shortstory / fullstory): {category}, {date}, {views}, [xfvalue_…] и т.д.

Пример сценария

scenarios/news_update.tpl:

Новость «{title}» была обновлена
{full-link}

Пример письма

wrappers/email_body.tpl:

{message}<br><br>
<a href="{full-link}">Читать</a><br><br>
<a href="{unsubscribe-url}">Отписаться</a>

Сначала рендерится сценарий → попадает в {message} → обёртка email_body.tpl или pm_body.tpl.

Тема письма и тема ЛС — строки настроек email_subject / pm_subject; там те же плейсхолдеры.

Пустой или отсутствующий сценарий/обёртка (ни в скине, ни в Default) — канал не отправляется.

Кнопки (subscribe/)

ФайлТип
news.tplnews
cat.tplcat
user.tpluser
tag.tpltag
xfield.tplxfield
all.tplall
ТегЗначение
{subscribe-label}подпись кнопки
{subscribed}1 / 0
{subscription-id}id объекта
{subscription-type}news, cat, …
{news-id}id новости (для type=news)
{count}число подписчиков
{user-hash}хеш сессии DLE
<button type="button"
	class="dc-notify-subscribe"
	data-type="news"
	data-id="{subscription-id}"
	data-subscribed="{subscribed}">
	{subscribe-label}
</button>
<span>{count}</span>

Класс dc-notify-subscribe обязателен для JS.

Лента на сайте

item.tpl

ТегЗначение
{id}id уведомления
{message}текст
{date}дата
{level}info, success, …
{unread}1 / 0
{unread-class}is-unread / is-read
{verb}код действия (updated, commented, …)
{actions}HTML кнопки «Открыть» (из item_actions.tpl)
{side-action}на стене — «Прочесть» (непрочитанные); в колокольчике — «Закрыть»; прочитанные на стене — пусто

item_actions.tpl

ТегЗначение
{object-url}ссылка на объект
{open-label}«Открыть»

item_side_mark_read.tpl

ТегЗначение
{mark-read-label}«Прочесть»

item_side_dismiss.tpl

ТегЗначение
{dismiss-label}«Закрыть»

wall.tpl

ТегЗначение
{items}HTML списка
{mark-all-label}«Прочитать все»
{empty-label}пустой список

badge.tpl

ТегЗначение
{unread-count}непрочитанные
{items}короткий список
{mark-all-label}«Прочитать все»

См. также

На этой странице