Настройка уведомлений для личного кабинета на сайте

 

Введение 

Система уведомлений позволяет оповещать пользователя о некоем событии через Email, Телеграм, пуш уведомление или на сайте. 

Уведомление создается через внешнее действие типа notification.

Типы уведомлений создаются на странице /notificationTypes в панели администратора.

Дополнительная обработка уведомлений через SP коллбек

Вы можете прописать процедуру, которая будет вызываться после каждого события. 

CREATE OR ALTER PROCEDURE [dbo].[nt_example_afterCreate]
	@id int,
	@username nvarchar(32), 
	@parameters ExtendedDictionaryParameter readonly
AS
BEGIN
	
	-- SELECT 1
	Select '' Msg, 1 Result, 1 SendTelegram, 0 SendEmail

	-- SELECT 2  вызов внешних действий
END

На входе: 

id - id созданного уведомления в as_nt_notifications

username - текущий пользователь

parameters - системные параметры (falconGuid, landID, userIP и т.д.)

На выходе: 

SELECT 1 

SendTelegram - отправлять или нет уведомление через телеграм бота (если он подключен к пользователю).

SELECT 2 - выполнение внешних действий (вызов API, отправка Email и т.д.)

Внимание! Избегайте ситуации, когда во внешнем действии создается новое уведомление и возникает бесконечный цикл. 

Как отправлять Email пользователю для уведомления 

Вы можете задействовать для этого внешнее действие в процедуре afterCreate - получить email пользователя из as_users, и затем отправить в SELECT 2 через внешнее действие с типом email или emailTemplate

Вызов уведомления из любой sql процедуры

Для создания уведомлений из хранимых процедур, необходимо вызвать хранимую процедуру as_nt_createNotification

  • from - пользователь, от которого направлено уведомление.
  • to - пользователь, которому направлено уведомление.
  • url - дополнительный URL как часть информации об уведомлении
  • text - краткий текст уведомления 
  • typecode - код уведомления из таблицы notificationTypes
  • additional - дополнительная информация по уведомлению.

Этот способ лучше использовать только в крайнем случае, когда нет возможности задействовать внешнее действие. 

Примечание: 

1. Также вы можете вызвать немедленное уведомление при сохранении формы (см. Вызов внешних действий, например через параметры Saveitem для формы в SELECT 2). 
2. Если есть возможность, то лучше вызывать процедуры через внешние действия 
3. Если стоит Мгновенное уведомление - используйте Внешние действия. Это позволит задействовать средства платформы для отправки push уведомления. Галочка мгновенные уведомления при создании уведомления сразу выводит окошко на экране у пользователя, отправляет Push уведомление (если они включены), и отправляет telegram сообщение (если пользователь привязан к боту и бот настроен в проекте).

Как сделать кастомизированную верстку для панели уведомлений вверху справа

Для этого необходимо указать в хранимой процедуре [as_nt_getUserNotifications] в SELECT 2 в параметре CustomMakeup требуемую разметку. При этом данные SELECT 1 не будут учитываться. Данная процедура вызывается на странице для запроса количества необработанных уведомлений.

Верстку панели уместно формировать через HTML блок (с процедурой) и затем использовать в параметре CustomMakeup.

Альтернативный вариант (обновление июнь 2024) - добавить контейнер с классом .as-nt-itemMakeup - в нем будет кастом разметка элемента панели. 

В ней можно использовать такие элементы: {date}, {id}, {alertType},{additionalBtn}, {url}, {from}, {text}

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK