Типы подписок v200.1.0
news, cat, user, tag, xfield, all: объект подписки и момент срабатывания
Подписка — пара subscription_type + subscription_id (всегда строка). Совпадение с событием ищет matcher; дальше работают права, настройки пользователя и каналы.
Когда срабатывает
| Тип | Объект | Событие |
|---|---|---|
news | ID новости | правка этой новости |
cat | ID категории | новая публикация в разделе |
user | ID автора | новая публикация этого автора |
tag | slug/текст тега | новая новость с тегом |
xfield | поле/значение, например year/2019 | новая новость с таким значением |
all | пустой / не используется | любая новая новость |
news — только edit. cat / user / tag / xfield / all — только add. Так задумано: иначе подписчик категории получал бы и каждую правку чужих статей.
Включение в админке
Настройки модуля:
- флаги типов подписок;
- «Уведомлять при публикации» — add;
- «Уведомлять об обновлении новости» — edit.
В Правах групп тип можно запретить отдельно.
Примеры include
Категория (main.tpl, только страница раздела):
[available=cat]
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=cat&id={category-id}"}
[/available]Тег (main.tpl, только страница тега; {cloudstag} — тег из URL):
[available=tags]
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=tag&id={cloudstag}"}
[/available]Доп. поле / xfsearch (main.tpl; id собирается модулем из URL, формат поле/значение):
[available=xfsearch]
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=xfield"}
[/available]Все новости:
{include file="devcraft/src/modules/Notifications/Site/web.php?focus=subscribe&stype=all"}Число подписчиков в кнопке — {count} в subscribe/*.tpl. Полный гайд: Include в шаблонах.
Каналы одной подписки
У записи независимо: сайт, email, ЛС. Выбираются при подписке и хранятся у пользователя.