DevCraft Документации
Справочник

Site/web.php v200.1.0

Параметры include: focus, stype, id и теги шаблона

Описание: публичная точка входа модуля на сайте. Подключается через DLE {include}; разметка берётся из templates/{skin}/devcraft/notifications/ (fallback — Default).

Файл: devcraft/src/modules/Notifications/Site/web.php

Было: engine/modules/devcraft/notifications_site.php (перенесено в Site/).

С версии: 200.1.0

См. также:

Синтаксис

{include file="devcraft/src/modules/Notifications/Site/web.php?focus=…&stype=…&id=…"}

Параметры передаются в query-строке include (стандартный механизм DLE: становятся локальными переменными модуля).

Используйте stype, не type. В dle_template::load_file() переменная $type уже занята расширением файла (php), а extract(..., EXTR_SKIP) отбрасывает type= из query — подписка всегда сваливалась бы в news.

Параметры

ПараметрТипПо умолчаниюОписание
focusstringsubscribeРежим вывода: что именно рендерить
stypestringnewsТип подписки; имеет смысл при focus=subscribe
idstring''Идентификатор объекта подписки (см. тип)
newsidstring|intАлиас id (если id не задан)
news_idstring|intАлиас id (если id и newsid не заданы)

Неизвестный stype → трактуется как news. Значение id нормализуется по типу (SubscriptionType::normalizeId).

focus

ЗначениеГостиАвторизованныеЧто выводит
cssдада<link> на assets/notifications.css + meta dc-ajax-base, dc-notify-live-period
jsдадаdc_public.js, timeago, assets/notifications.js (однократно за запрос)
badgeнетда*badge.tpl — колокольчик и список непрочитанных
wallнетда*wall.tpl — стена уведомлений
subscribeнетда*subscribe/{stype}.tpl — кнопка подписки / отписки

* Плюс права группы и (для subscribe) флаг типа в настройках модуля. Без права или при выключенном типе модуль молча ничего не выводит.

Для гостей любые focus, кроме css и js, завершаются сразу (return).

stype (только focus=subscribe)

stypeФормат idПример
newsID новости (int > 0)id={news-id}
catID категорииid={category-id}
useruser_id автораid={user-id}
tagslug/текст тега ({cloudstag} на странице тега)id={cloudstag}
xfieldполе/значениеid=year/2019 или без id на xfsearch
allне используется (пустая строка)без id

Для stype=news при id ≤ 0 кнопка не выводится. Для stype=xfield без id на странице do=xfsearch модуль собирает id из URL (например /xfsearch/year/2019/year/2019). Семантика срабатывания (add vs edit): типы подписок.

Рекомендуемая обёртка в main.tpl: [available=cat] / [available=tags] / [available=xfsearch].

Примеры

{include file="devcraft/src/modules/Notifications/Site/web.php?focus=css"}
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=badge"}
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=js"}

{include file="devcraft/src/modules/Notifications/Site/web.php?focus=wall"}

{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=news&id={news-id}"}
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=cat&id={category-id}"}
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=user&id={user-id}"}
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=tag&id={cloudstag}"}
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=xfield"}
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=xfield&id=linked_data/dasdasd"}
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=all"}

На страницах раздела, тега и xfsearch удобнее обернуть include в [available=cat] / [available=tags] / [available=xfsearch] (см. гайд).

Теги шаблона

Модуль выставляет плейсхолдеры перед load_template / compile:

ТегКогдаЗначение
{news-id}всегдачисловой id (для news)
{subscription-id}всегданормализованный id подписки
{subscription-type}всегдаnews / cat / …
{user-hash}всегда$dle_login_hash для AJAX
{subscribe-label}subscribe«Подписаться» / «Отписаться»
{subscribed}subscribe1 или 0
{count}subscribeчисло подписчиков
{items}wall / badgeHTML списка записей
{unread-count}wall / badgeчисло непрочитанных
{notifications-title}wall / badgeзаголовок
{mark-all-label}wall / badge«Прочитать все»
{empty-label}wall / badge«Нет уведомлений»
{empty-hidden}wall / badgeпусто или hidden
{wall-limit}всегдалимит из настроек
{live-refresh-period}всегдаинтервал автообновления (сек; 0 — выкл.)
{notifications-url}всегдаURL страницы уведомлений
{view-all-label}всегда«Все уведомления»
{theme-path}всегдаURL каталога активной темы

Шаблоны: subscribe/{type}.tpl, wall.tpl, badge.tpl, item.tpl и др. — см. шаблоны и теги.

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