Jak tworzyć powiadomienia użytkowników w stylu Facebooka?

14

Korzystając z Heartbeat, byłem w stanie skutecznie tworzyć strumienie aktywności użytkownika za pomocą reguł. Chciałbym jednak mieć możliwość powiadamiania użytkowników o nowych działaniach i rejestrowania liczby nowych działań, takich jak na Facebooku, a nawet podobnych do nowych wiadomości e-mail w większości systemów pocztowych.

W Drupal 6 było kilka modułów, które mogłyby to dobrze osiągnąć, jednak jak można to zrobić w Drupal 7?

Zrobiłem dość szeroko zakrojone badania na ten temat, ale jestem w stanie znaleźć odpowiedni moduł w tym momencie: Jest to Powiadomienia użytkownika i Notifier moduły, które byłoby idealne rozwiązania istnieją tylko wersje z wyjątkiem D6. Istnieją Powiadomienia, których nie można zintegrować z żadnym modułem rejestrowania aktywności, ponieważ brakuje w nim odpowiedniej obsługi Reguł. Dwie interesujące implementacje to pasek aplikacji i pasek zadań, które zapewniają rozwijane tace z listami działań, ale nie liczą liczby nowych działań i nie integrują się już z regułami. Wreszcie DLikejest świetny jako licznik dynamiczny, chociaż w tej chwili zlicza tylko Flagi i zapewnia link do listy oznaczonych użytkowników. Być może z pewnymi poprawkami można go użyć poprzez integrację z Flags Rules, aby śledzić ostatnie (oznaczone) działania i link do listy tych ostatnich działań.

Czy można osiągnąć funkcjonalność podobną do tej w Drupal 7? Facebook

David Gurran 82
źródło
1
To nie jest odpowiedź, miałem takie same wymagania, a nie moduły nadawały się do funkcjonalności. Osiągnąłem to dzięki niestandardowemu blokowi wyświetlającemu liczbę powiadomień z rozwijaną listą i szczegółami. Do powiadomienia w czasie rzeczywistym używam modułu nodejs, aby dołączyć do niego nowe powiadomienie. Zdarzenie dla nodejs będzie wywoływane z reguł z kodem php.
j2r
Mam coś takiego: drupal.stackexchange.com/questions/158932/…
drupaluser

Odpowiedzi:

4

Podejście 1: odznaki menu

Użyj modułu Odznaki menu , aby dodać takie powiadomienia do dowolnej pozycji menu i / lub wybranej karty menu . Oto kilka szczegółów na ten temat (ze strony projektu):

Zapewnia metodę dodawania odznak w stylu iOS do pozycji menu. (patrz zrzut ekranu)

wprowadź opis zdjęcia tutaj

Dodawanie odznak do menu

Po włączeniu przejdź do Administration > Structure > Menusi kliknij „wyświetl listę linków” obok menu zawierającego element docelowy. Kliknij „edytuj” obok elementu i wybierz znaczek do wyświetlenia z polem wyboru Odznaka menu wyświetlacza.

Dodawanie odznak do kart

Aby dodać odznaki do kart menu, pod zakładką Administration > Structure > Menus„Odznaki menu karty” znajduje się zakładka . Wyszukaj ścieżkę menu routera karty, którą chcesz zmienić, a następnie wybierz znaczek z odpowiedniego pola wyboru.

Rodzaje odznak

Moduł zawiera pięć przykładowych odznak, a nowe odznaki można łatwo tworzyć za pomocą Widoku . Moduły mogą również dostarczać własne identyfikatory z implementacją haka. Szczegółowe informacje można znaleźć w pliku README.txt .

Ze względu na to, jak integruje się z modułem Widoki , zasadniczo redukujesz rozwiązanie dla dowolnego rodzaju powiadomienia do czegoś takiego jak „Po prostu stwórz odpowiedni widok”.

Samouczki wideo:

Podejście 2: stos wiadomości

Użyj stosu wiadomości , który składa się z tych modułów (cytaty pochodzą ze strony projektu modułu):

  • Wiadomość :

    Moduł wiadomości jest rdzeniem stosu wiadomości. Umożliwia rejestrowanie i wyświetlanie zdarzeń systemowych w wielu różnych przypadkach użycia. Zdarzenia, które są rejestrowane w czasie, są czasem wywoływanymi strumieniami aktywności. Podtypy komunikatów do eksportu można tworzyć dla różnych przypadków użycia z niestandardowymi polami i trybami wyświetlania (wyświetlania).

  • Informuj wiadomość .

    Ten moduł zapewnia metodę wysyłania wiadomości za pośrednictwem wtyczki powiadamiającej. Wiadomość Powiadomienie jest dostarczana z wtyczkami do wiadomości e-mail i SMS-ów i może być rozszerzana na inne mechanizmy transportowe zgodnie z wymaganiami.

  • Subskrybuj wiadomość .

    Dzięki temu modułowi użytkownicy, którzy subskrybują treść, będą powiadamiani o zdarzeniach związanych z tą treścią. Moduł wykorzystuje moduł Flag, który zapewnia użytkownikom funkcję subskrypcji.

Oto podstawowe elementy i zależności stosu komunikatów:

wprowadź opis zdjęcia tutaj

Sporo popularnych dystrybucji Drupala zostało już zaadaptowanych do tego stosu wiadomości, takich jak Commerce Kickstart , Drupal Commons , ERPAL i Open Atrium .

Jeśli chcesz przyjrzeć się stosowi wiadomości we własnym środowisku, poeksperymentuj trochę z modułem Answers (ujawnienie: jestem współobsługą), wraz z podmodułem Answers Notification , który umożliwia zalogowanie się użytkownicy mogą zasubskrybować wybrane pytania, aby otrzymywać powiadomienia (za pomocą stosu wiadomości ), gdy pytania otrzymają odpowiedzi.

A stos wiadomości sprawi, że będziesz dobrze pozycjonowany także dla Drupala 8 (ze względu na architekturę obiektową modułów). Mimo że nie istnieje jeszcze coś takiego jak 8.x-dev, repozytorium kodu wiadomości już zawiera coś (jeszcze nie dla 2 innych modułów). Zakładam, że wipczęść nazwy oddziału oznacza „Work In Progress”.

Pierre.Vriens
źródło
will make you well positioned for Drupal 8 also.masz na myśli w przyszłości? Widzę, że żaden z modułów wiadomości nie ma jeszcze wersji Drupal 8, nawet dev.
Bez Sssweat
1
Hej @ NoSssweat ... Lekko rozszerzyłem (a potem koniec) moją odpowiedź, aby wyjaśnić jej część D8.
Pierre.Vriens
Bardzo dziękuję za twoją uprzejmą odpowiedź @ Pierre.Vriens, sprawdzę wszystkie powiązane dokumenty, mając nadzieję, że będę miał jasny pomysł na temat stosu wiadomości ...
Charbel El Azzi
1
mam na myśli, że wiem, jak sprawić, by system powiadomień działał między użytkownikami na mojej stronie, a teraz dowiedziałem się więcej o stosie wiadomości, z których jestem zadowolony, ale nadal jestem zdezorientowany, jak zaprojektować takie menu powiadomień. .
Charbel El Azzi
1
Kolejny przykład, aby lepiej zrozumieć mój problem: spójrz do menu rozwijanego po najechaniu wskaźnikiem myszy na koszyk w witrynie handlu kickstart 2 (jeśli znasz się na dystrybucji kickstart) ... taki system rozwijany, którego szukam w moje pytanie ... jeszcze raz dziękuję za poświęcony czas i wysiłek kochanie @ Pierre.Vriens, niech cię Bóg błogosławi.
Charbel El Azzi,
3

Jest stosunkowo nowa para modułów, które moim zdaniem byłyby przydatne do tego: Wiadomość i Powiadomienie o wiadomości .

Wiadomość jest w zasadzie ramą do tworzenia „wiadomości”, które w twoim przypadku byłyby elementami powiadomień. Jedną fajną rzeczą jest to, że tak naprawdę wszystkie są tworzone jako byty, więc łatwo byłoby wyświetlić je w bloku rozwijanym, mieć stronę Wszystkie powiadomienia, a także mieć niestandardowe pole lub flagę wskazującą, czy zostały widziałem (lub są nowe). Następnie możesz połączyć to z powiadomieniami e-mail za pomocą modułu Powiadomienia o wiadomościach .

Pamiętaj jednak, że zintegrowanie tego z witryną byłoby zadaniem programistycznym bardziej niż zadaniem budowania witryny. Moduł ma dobre API, które można wykorzystać w odpowiednich zaczepach itp. Do tworzenia wiadomości w razie potrzeby, ale nie jestem pewien, jak przebiega integracja reguł.

goron
źródło
3

Do integracji w czasie rzeczywistym możesz użyć modułu nodejs.

Ten moduł integruje Node.js z Drupal.

Zapewnia interfejs API, którego inne moduły mogą używać do dodawania możliwości Drupala w czasie rzeczywistym, w szczególności umożliwiając wypychanie aktualizacji w celu otwarcia połączonych klientów.

RajneeshB
źródło