Notify v200.1.0
notifySend, onNewsSaved, onCommentAdded, рейтинг/удаление/подписка и класс Notify
Публичный фасад для хаков. Админка и шаблоны — руководства.
С версии: 200.1.0
Плагин при установке подключает devcraft/src/modules/Notifications/Site/include.php после bootstrap DevCraft. В обычном запросе DLE функции уже доступны — достаточно function_exists. В AJAX без init.php хуки вызывают notifyEnsureReady().
Функции
notifySend(int $recipientId, ?string $message = null, …): void
notifyOnNewsSaved(int $newsId, string $event): void
notifyOnCommentAdded(int $commentId, int $newsId, int $parentId, string $text, int $authorId): void
notifyOnNewsRated(int $newsId, int $voterId, int $goRate): void
notifyOnCommentRated(int $commentId, int $voterId, int $goRate): void
notifyOnCommentDeleted(int $commentId, int $newsId, int $authorId, int $actorId): void
notifyOnUserSubscribed(int $targetUserId, int $subscriberId): void
notifyFormatMentionsHtml(string $text): string| Функция | Назначение |
|---|---|
notifySend | произвольное уведомление получателю |
notifyOnNewsSaved | add / edit / approve / reject |
notifyOnCommentAdded | ответ, mention, автор новости |
notifyOnNewsRated | рейтинг новости → автор |
notifyOnCommentRated | рейтинг комментария → автор комментария |
notifyOnCommentDeleted | удаление комментария → автор (корневой id) |
notifyOnUserSubscribed | новая подписка type=user → цель |
notifyFormatMentionsHtml | @ник → ссылка в HTML комментария |
Класс Notify
Namespace: DevCraft\Modules\Notifications\Services
Те же операции: Notify::send, ::onNewsSaved, ::onCommentAdded, ::onNewsRated, ::onCommentRated, ::onCommentDeleted, ::onUserSubscribed, ::formatMentionsHtml, ::subscriptions().
notifySend / Notify::send
| Параметр | Назначение |
|---|---|
$recipientId | получатель |
$message | готовый текст; null, если рендерится сценарий |
$contentType | связанная сущность (news, comment, user, …) |
$contentTypeId | её id |
$senderId | инициатор |
$level | info, success, … |
$channels | пусто = настройки модуля; иначе site / email / pm |
$scenario | имя файла в scenarios/ без .tpl |
$extraVars | доп. плейсхолдеры, ключи вида {title} |
$newsRow | строка новости для тегов DLE |
if (function_exists('notifySend')) {
notifySend(
$authorId,
null,
'news',
$newsId,
$senderId,
'success',
[],
'moderation_approve',
['{title}' => $title, '{full-link}' => $link],
$newsRow
);
}Хуки рейтинга и удаления комментария ставятся плагином (rating.php, ratingcomments.php, deletecomments). Подписка на пользователя вызывается из SubscriptionService::subscribe без отдельного DLE-хака.