UserNotification

Создание оповещений для пользователей
Автор дополнения
crow
Пакетов
6
Закачек
16
Обычно отвечает в течение 2 часов
Автор дополнения
Пакетов
6
Закачек
16
Обычно отвечает в течение 2 часов
Версия 1.0.1-pl
Дата выпуска 04.08.2018
Загрузки 2
Просмотры 398
Внимание, этот компонент требует версию PHP 5.5 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.5 !
Простой и легкий компонент, который позволяет создавать как ручные (через админку сайта) так и автоматические оповещения на сайте для пользователей (через API компонента). Оповещение можно отправлять в трех режимах: определенному пользователю, группе пользователей, всем. На всякий случай, добавлено событие для плагина «UserNotificationCreate» при создании нового оповещения (ручного и автоматического), в нем находится xPDO обьект оповещения доступный через переменную "$notification". В компоненте нет динамического обновления оповещений у пользователя и он не работает с Node JS. Отправка сообщений на email не производится и не поддерживается, но при необходимости, есть возможность реализовать это через событие плагина. С помощью API, компонент можно применять в связке с другими компонентами.

Для добавления автоматических оповещений необходимо использовать API компонента в своих сниппетах, плагинах, классах
$modx->getService('usernotification', 'usernotification', MODX_CORE_PATH . 'components/usernotification/model/usernotification/'); // инициализация компонента
// далее можно использовать любой из методов ниже, все параметры обязательны
$modx->usernotification->sendAll('Текст сообщения'); // отправить сообщение всем
$modx->usernotification->sendGroup('Текст сообщения', $group_id); // отправить сообщение указанной группе (только ID группы)
$modx->usernotification->sendUser('Текст сообщения', $user_id); // отправить сообщение выбранному пользователю

Для отображения оповещений пользователям, необходимо вызвать сниппет “[[!userNotification]]” в нужном месте шаблона. Сниппет принимает следующие параметры (все опциональные):
  • user_id — ID пользователя
  • tpl — шаблон каждого отдельного оповещения
  • tplOuter — шаблон обертка, плейсхолдеры: [[+rows]] — список оповещений, [[+total]] — кол-во оповещений
  • tplEmpty — чанк оформления контейнера оповещений при отсутствии самих оповещений
  • mode — если выставлено «count» вернет только кол-во оповещений
  • where — доп. условия выборки, понимает как массив так и json
  • sortby, sortdir — поле для сортировки и направление
  • limit — лимит вывода, по умолчанию отсутствует
  • js — можно переопределить js по умолчанию
  • css — можно переопределить css по умолчанию
  • action — action файл, на который ссылается AJAX

Внимание! Оповещение считается прочтенным, только после нажатия на крестик. При смене разметки стандартного вывода оповещений, классы с префиксом «js_» должны быть сохранены:
  • js_usernotification_btn — кнопка по нажатию на которую, появляется окно со списком сообщений
  • js_usernotification_total — кол-во сообщений
  • js_usernotification_rows — список оповещений
  • js_usernotification_row — каждое отдельное оповещение
  • js_usernotification_remove — кнопка для удаления оповещения (пометить как прочитанное)





1.0.1-pl (04.08.2018)

  • убраны старые нотификации в режиме (всем, группе) для новых пользователей

Последние обсуждения в сообществе MODX.pro