Используя Heartbeat, я смог эффективно создавать потоки пользовательских действий с помощью триггеров правил. Однако я хотел бы, чтобы пользователи могли получать уведомления о новых действиях, а также вести учет количества новых действий, таких как в Facebook, или даже сходных с количеством новых сообщений электронной почты в большинстве систем электронной почты.
В Drupal 6 было несколько модулей, которые могли бы добиться этого хорошо, однако как это можно сделать в Drupal 7?
Я провел довольно обширные исследования по этому вопросу, но пока не могу найти подходящий модуль: есть модули User Notification и Notifier , которые были бы идеальными решениями, за исключением того, что существуют только версии D6. Есть Уведомления, которые не могут быть интегрированы ни с одним модулем регистрации активности, поскольку в нем отсутствует соответствующая поддержка Правил. Две интересные реализации - это панель приложений и панель задач, которые предоставляют раскрывающиеся списки со списками действий, но не учитывают количество новых действий и больше не интегрируются с правилами. Наконец-то DLikeотлично подходит в качестве динамического счетчика, хотя на данный момент он учитывает только флаги и предоставляет ссылку на список отмеченных пользователей. Возможно, с некоторыми изменениями его можно было бы использовать через интеграцию с Flags Rules для отслеживания недавних (помеченных) действий и ссылки на список этих недавних действий.
Возможно ли достичь функциональности, подобной этой в Drupal 7?
источник
Ответы:
Подход 1: Значки меню
Используйте модуль Значки меню, чтобы добавить такие уведомления в любой элемент меню и / или вкладку меню по вашему выбору. Вот некоторые подробности об этом (со страницы проекта):
Из-за того, как он интегрируется с модулем Views , вы в основном сводите решение для любого типа уведомлений к чему-то вроде «Просто создайте соответствующий вид».
Видео уроки:
Подход 2: стек сообщений
Используйте Стек сообщений , который состоит из этих модулей (цитаты взяты из страницы проекта модуля):
Сообщение :
Сообщение Уведомить .
Сообщение Подписаться .
Это основные компоненты и зависимости стека сообщений:
Довольно много популярных дистрибутивов Drupal, уже принятых для этого стека сообщений, таких как Commerce Kickstart , Drupal Commons , ERPAL и Open Atrium .
Если вы хотите поближе познакомиться со стеком сообщений в своей среде, то немного поэкспериментируйте с модулем « Ответы » (раскрытие: я со-сопровождающий), а также с субмодулем «Уведомление об ответах », который позволяет войти в систему. пользователи подписываются на выбранные вопросы, чтобы они получали уведомления (используя стек сообщений ), когда вопросы получают ответы.
А стек сообщений обеспечит вам хорошие позиции и для Drupal 8 (из-за объектно-ориентированной архитектуры модулей). Несмотря на то, что пока нет такого понятия, как 8.x-dev, хранилище кода сообщений уже содержит что-то уже (хотя еще не для 2 других модулей). Я предполагаю, что
wip
часть названия ветви означает «Работа в процессе».источник
will make you well positioned for Drupal 8 also.
ты имеешь ввиду в будущем? Я вижу, что ни один из модулей сообщений еще не имеет версию Drupal 8, даже dev.Есть относительно новая пара модулей, которые, я думаю, было бы неплохо использовать для этого: Message и Message-notify .
Сообщение - это в основном структура для создания «сообщений», которые в вашем случае будут элементами уведомлений. Одна интересная вещь заключается в том, что все они на самом деле созданы как сущности, поэтому было бы легко показать их затем в выпадающем блоке, иметь страницу «Все уведомления», а также иметь настраиваемое поле или флаг, указывающий, были ли они видел (или новы). Затем вы можете подключить это к уведомлениям по электронной почте с помощью модуля Message-notify .
Обратите внимание, что интеграция этого в ваш сайт будет задачей разработки больше, чем задача создания сайта. Модуль имеет хороший API, который можно использовать в соответствующих хуках и т. Д. Для создания сообщений при желании, но я не уверен, как идет интеграция правил.
источник
Для интеграции в реальном времени вы можете использовать модуль nodejs.
Этот модуль интегрирует Node.js с Drupal.
Он предоставляет API, который другие модули могут использовать для добавления возможностей Drupal в реальном времени, в частности, позволяя отправлять обновления для открытия подключенных клиентов.
источник