DevCraft Документации

Начало работы v200.1.0

Обзор модуля DLE Уведомления: каналы, подписки, требования и первые шаги

Введение

DLE Уведомления — дополнительный модуль DevCraft Admin для DataLife Engine 20. Модуль рассылает сообщения по событиям сайта: правка новости, новый комментарий, упоминание @ник, рейтинг, удаление комментария, подписка на автора, модерация и другие сценарии.

Каналы доставки:

  • сайт — колокольчик и стена (лента);
  • почта;
  • личные сообщения DLE.

Пользователь подписывается на новость, категорию, автора, тег, доп. поле или на все новые публикации и получает только подходящие события. Тексты писем, ЛС и записей ленты задаются файлами .tpl в теме сайта.

Исходники: DevCraftClub/DLE-Notifications.

Основные возможности

  • кнопка подписки у новости, категории и других объектов;
  • стена уведомлений и счётчик непрочитанных с автообновлением;
  • отдельная страница /notifications/ (do=notifications);
  • шаблоны сценариев, писем и ленты в теме сайта (если файла нет — берётся Default);
  • права по группам DLE и настройки пользователя (почта / ЛС);
  • функции notify* для своего кода и запросы ленты без перезагрузки страницы (list, unread_count, mark_read и др.);
  • свои события из дополнения DLE или другого модуля.

Требования

Полный перечень шагов: Установка.

Быстрый старт

1. Установка

Инструкция по установке — архив, автозагрузка классов, таблицы в базе, копирование шаблонов темы.

2. Первое использование

В шапке темы (main.tpl):

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

Полная новость (fullstory.tpl):

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

В меню — колокольчик; перед </body> — скрипты:

{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"}

Отправка из PHP (после установки функции notify* доступны на всём сайте):

if (function_exists('notifySend')) {
	notifySend($userId, 'Текст уведомления');
}

3. Дополнительная настройка

В панели DevCraft → DLE Уведомления: типы подписок, автообновление колокольчика, режим удаления записей ленты, путь к шаблонам. Права групп — отдельная страница модуля. Подробнее: права, настройки пользователя.

Структура проекта

Корень сайта DLE после установки плагина:

dle_notifications.xliff
manifest.php
settings.schema.php
permissions.defs.php
changelog.data.php
NotificationsIdentity.php
SettingsHandler.php
PermissionsHandler.php
ListHandler.php
UnreadCountHandler.php
MarkReadHandler.php
DeleteHandler.php
SubscribeHandler.php
UnsubscribeHandler.php
UnsubscribeTokenHandler.php
ChangelogPage.php
DashboardPage.php
SettingsPage.php
PermissionsPage.php
notifications.php
badge.tpl
wall.tpl
item.tpl
item_actions.tpl
subscribe.tpl
page.tpl
  • engine/inc/notifications.php — точка входа в админку DLE: открывает модуль в DevCraft.
  • Site/web.php — подключение на сайте через {include} (focus=css|js|badge|wall|subscribe).
  • Site/page.php + page.tpl — страница do=notifications.
  • Site/include.php — procedural API notify* (подключает плагин после bootstrap).
  • templates/{тема}/devcraft/notifications/ — разметка и стили/скрипты публичного сайта (не шаблоны админки).

Концепции

Каналы и лента

Уведомление создаётся в ленте сайта и при необходимости дублируется в почту и ЛС. Колокольчик (focus=badge) показывает счётчик; стена (focus=wall) — список с действиями «прочитать» / «открыть».

Подписки

Тип (news, cat, user, tag, xfield, all) задаёт, на что подписан пользователь. Кнопка на странице — focus=subscribe с stype и id. Подробнее: типы подписок.

Сценарии и шаблоны

Текст события берётся из scenarios/*.tpl темы; письма и ЛС — из wrappers/. Теги вроде {title}, {full-link}, {unsubscribe-url} описаны в шаблонах сценариев.

Параметр focus во вставке

focusКудаЧто
cssшапкастили и служебные meta для автообновления
jsниз страницыскрипты
badge / wall / subscribeразметкаколокольчик, стена, кнопка подписки

Полная вставка: Вставка в шаблоны. Подробные сниппеты cat / tag / xfield / user: Include в шаблонах темы.

Разделы документации

Рекомендуемая последовательность обучения

  1. Новичок? Начните с установки.
  2. Подключить тему? Смотрите вставку в шаблоны, include и страницу уведомлений.
  3. Свои тексты событий? Шаблоны сценариев и сценарии.
  4. Свой код? Своё событие, запросы ленты, справочник Notify.
  5. Обновления? История изменений.

Получение помощи

Следующие шаги

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