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

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произвольное уведомление получателю
notifyOnNewsSavedadd / 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инициатор
$levelinfo, 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-хака.

См. также

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