Как создать пользовательские уведомления в стиле Facebook?

14

Используя Heartbeat, я смог эффективно создавать потоки пользовательских действий с помощью триггеров правил. Однако я хотел бы, чтобы пользователи могли получать уведомления о новых действиях, а также вести учет количества новых действий, таких как в Facebook, или даже сходных с количеством новых сообщений электронной почты в большинстве систем электронной почты.

В Drupal 6 было несколько модулей, которые могли бы добиться этого хорошо, однако как это можно сделать в Drupal 7?

Я провел довольно обширные исследования по этому вопросу, но пока не могу найти подходящий модуль: есть модули User Notification и Notifier , которые были бы идеальными решениями, за исключением того, что существуют только версии D6. Есть Уведомления, которые не могут быть интегрированы ни с одним модулем регистрации активности, поскольку в нем отсутствует соответствующая поддержка Правил. Две интересные реализации - это панель приложений и панель задач, которые предоставляют раскрывающиеся списки со списками действий, но не учитывают количество новых действий и больше не интегрируются с правилами. Наконец-то DLikeотлично подходит в качестве динамического счетчика, хотя на данный момент он учитывает только флаги и предоставляет ссылку на список отмеченных пользователей. Возможно, с некоторыми изменениями его можно было бы использовать через интеграцию с Flags Rules для отслеживания недавних (помеченных) действий и ссылки на список этих недавних действий.

Возможно ли достичь функциональности, подобной этой в Drupal 7? facebook

Дэвид Гурран 82
источник
1
Это не ответ, у меня было такое же требование, и ни один из модулей не подходил для функциональности. Так что я добился этого с помощью пользовательского блока, отображающего номер уведомления с раскрывающимся списком и детализацией. Для уведомления в реальном времени я использую модуль nodejs для добавления в него нового уведомления. Событие для nodejs будет вызываться из правил с php-кодом.
J2R
У меня есть что-то вроде этого: drupal.stackexchange.com/questions/158932/…
drupaluser

Ответы:

4

Подход 1: Значки меню

Используйте модуль Значки меню, чтобы добавить такие уведомления в любой элемент меню и / или вкладку меню по вашему выбору. Вот некоторые подробности об этом (со страницы проекта):

Предоставляет метод добавления значков в стиле iOS к элементам меню. (см. скриншот)

введите описание изображения здесь

Добавление значков в меню

После включения перейдите Administration > Structure > Menusи нажмите «Список ссылок» рядом с меню, содержащим целевой элемент. Нажмите «изменить» рядом с элементом и выберите значок для отображения в поле выбора значка меню дисплея.

Добавление значков на вкладки

Для добавления значков на вкладки меню есть вкладка под Administration > Structure > Menusназванием «Значки меню вкладок ». Найдите путь к маршрутизатору меню на вкладке, которую вы хотите изменить, затем выберите значок в соответствующем поле выбора.

Типы бейджей

Модуль включает в себя пять примеров значков, и новые значки можно легко создавать с помощью Views . Модули могут также поставлять свои собственные значки с помощью реализации ловушек. Подробности смотрите в файле README.txt .

Из-за того, как он интегрируется с модулем Views , вы в основном сводите решение для любого типа уведомлений к чему-то вроде «Просто создайте соответствующий вид».

Видео уроки:

Подход 2: стек сообщений

Используйте Стек сообщений , который состоит из этих модулей (цитаты взяты из страницы проекта модуля):

  • Сообщение :

    Модуль сообщений является ядром стека сообщений. Это позволяет регистрировать и отображать системные события в ряде различных случаев использования. События, которые записываются с течением времени, иногда являются потоками активности вызовов. Подтипы экспортируемых сообщений могут быть созданы для разных вариантов использования с настраиваемыми полями и режимами отображения (просмотра).

  • Сообщение Уведомить .

    Этот модуль предоставляет метод для отправки сообщения через плагин уведомителя. Message Notify поставляется с плагинами для электронной почты и SMS и может при необходимости распространяться на другие транспортные механизмы.

  • Сообщение Подписаться .

    С помощью этого модуля пользователи, которые подписываются на контент, будут уведомлены о событиях, связанных с этим контентом. Модуль использует модуль флага, который предоставляет пользователям функциональность подписки.

Это основные компоненты и зависимости стека сообщений:

введите описание изображения здесь

Довольно много популярных дистрибутивов Drupal, уже принятых для этого стека сообщений, таких как Commerce Kickstart , Drupal Commons , ERPAL и Open Atrium .

Если вы хотите поближе познакомиться со стеком сообщений в своей среде, то немного поэкспериментируйте с модулем « Ответы » (раскрытие: я со-сопровождающий), а также с субмодулем «Уведомление об ответах », который позволяет войти в систему. пользователи подписываются на выбранные вопросы, чтобы они получали уведомления (используя стек сообщений ), когда вопросы получают ответы.

А стек сообщений обеспечит вам хорошие позиции и для Drupal 8 (из-за объектно-ориентированной архитектуры модулей). Несмотря на то, что пока нет такого понятия, как 8.x-dev, хранилище кода сообщений уже содержит что-то уже (хотя еще не для 2 других модулей). Я предполагаю, что wipчасть названия ветви означает «Работа в процессе».

Pierre.Vriens
источник
will make you well positioned for Drupal 8 also.ты имеешь ввиду в будущем? Я вижу, что ни один из модулей сообщений еще не имеет версию Drupal 8, даже dev.
Нет Sssweat
1
Привет @ NoSssweat ... Я немного расширил (затем конец) свой ответ, чтобы прояснить часть D8.
Pierre.Vriens
Большое спасибо за ваш добрый ответ @ Pierre.Vriens, я проверю все соответствующие документы, надеясь, что у меня будет четкое представление о стеке сообщений ...
Charbel El Azzi
1
я имею в виду, что я знаком с тем, как заставить систему уведомлений работать между пользователями на моем веб-сайте, и теперь я узнал больше о стеке сообщений, что мне приятно, но я все еще не понимаю, как создать такое выпадающее меню уведомлений .. .
Charbel Эль Ацци
1
Еще один пример, чтобы лучше понять мою проблему: посмотрите на выпадающее меню, когда вы наводите курсор мыши на корзину покупок на веб-сайте Commerce Kickstart 2 (если вы знакомы с распространением Kickstart) ... такую ​​выпадающую систему, которую я ищу в мой вопрос ... еще раз спасибо за ваше время и усилия, дорогой @ Pierre.Vriens, Бог благословит вас.
Чарбель Эль Аззи
3

Есть относительно новая пара модулей, которые, я думаю, было бы неплохо использовать для этого: Message и Message-notify .

Сообщение - это в основном структура для создания «сообщений», которые в вашем случае будут элементами уведомлений. Одна интересная вещь заключается в том, что все они на самом деле созданы как сущности, поэтому было бы легко показать их затем в выпадающем блоке, иметь страницу «Все уведомления», а также иметь настраиваемое поле или флаг, указывающий, были ли они видел (или новы). Затем вы можете подключить это к уведомлениям по электронной почте с помощью модуля Message-notify .

Обратите внимание, что интеграция этого в ваш сайт будет задачей разработки больше, чем задача создания сайта. Модуль имеет хороший API, который можно использовать в соответствующих хуках и т. Д. Для создания сообщений при желании, но я не уверен, как идет интеграция правил.

Goron
источник
3

Для интеграции в реальном времени вы можете использовать модуль nodejs.

Этот модуль интегрирует Node.js с Drupal.

Он предоставляет API, который другие модули могут использовать для добавления возможностей Drupal в реальном времени, в частности, позволяя отправлять обновления для открытия подключенных клиентов.

RajneeshB
источник