Comment créer des notifications utilisateur de style Facebook?

14

En utilisant Heartbeat, j'ai été en mesure de créer efficacement des flux d'activités utilisateur via des déclencheurs de règles. Cependant, j'aimerais pouvoir informer les utilisateurs de nouvelles activités et garder un compte du nombre de nouvelles activités comme sur Facebook, ou même similaire aux nouveaux comptes de messagerie dans la plupart des systèmes de messagerie.

Dans Drupal 6, il y avait quelques modules qui pourraient bien y parvenir, mais comment cela peut-il être fait dans Drupal 7?

J'ai fait des recherches assez approfondies à ce sujet mais je ne suis pas en mesure de trouver le bon module à ce stade: il y a les modules User Notifications et Notifier , qui seraient les solutions parfaites sauf que seules les versions D6 existent. Il existe des notifications qui ne peuvent être intégrées à aucun module de journalisation des activités car il ne prend pas correctement en charge les règles. Deux implémentations intéressantes sont AppBar et Taskbar qui fournissent des plateaux déroulant avec des listes d'activités, mais ne compte pas le nombre de nouvelles activités et de ne plus intégrer aux règles. Enfin DLikeest excellent comme compteur dynamique, même s'il ne compte pour le moment que les indicateurs et fournit un lien vers une liste des utilisateurs signalant. Peut-être qu'avec quelques ajustements, il pourrait être utilisé via l'intégration des règles de drapeaux pour suivre les activités récentes (marquées) et créer un lien vers une liste de ces activités récentes.

Est-il possible d'obtenir des fonctionnalités similaires à celles de Drupal 7? Facebook

David Gurran 82
la source
1
Ce n'est pas une réponse, j'avais le même type d'exigence et aucun des modules n'était adapté à la fonctionnalité. J'ai donc atteint cet objectif avec un bloc personnalisé affichant le nombre de notifications avec une liste déroulante et des détails. Pour la notification en temps réel, j'utilise le module nodejs pour y ajouter une nouvelle notification. L'événement pour nodejs sera appelé à partir de règles avec du code php.
j2r
J'ai quelque chose comme ceci: drupal.stackexchange.com/questions/158932/…
drupaluser

Réponses:

4

Approche 1: badges de menu

Utilisez le module Menu Badges pour ajouter de telles notifications à n'importe quel élément de menu et / ou onglet de menu de votre choix. Voici quelques détails à ce sujet (à partir de sa page de projet):

Fournit une méthode pour ajouter des badges de style iOS aux éléments de menu. (voir capture d'écran)

entrez la description de l'image ici

Ajout de badges aux menus

Une fois activé, accédez à Administration > Structure > Menuset cliquez sur "liste des liens" à côté du menu contenant l'élément cible. Cliquez sur "modifier" à côté de l'élément et sélectionnez le badge à afficher avec la boîte de sélection Badge du menu d'affichage.

Ajout de badges aux onglets

Pour ajouter des badges aux onglets de menu, il y a un onglet sous Administration > Structure > Menusappelé "Badges de menu d'onglets". Recherchez le chemin du routeur de menu de l'onglet que vous souhaitez modifier, puis sélectionnez un badge dans la zone de sélection correspondante.

Types de badges

Le module comprend cinq exemples de badges, et de nouveaux badges peuvent être créés facilement avec Views . Les modules peuvent également fournir leurs propres badges avec une implémentation de crochet. Voir le fichier README.txt pour plus de détails.

En raison de la façon dont il s'intègre au module Vues , vous réduisez essentiellement la solution pour tout type de notification à quelque chose comme "Créez simplement une vue appropriée".

Tutoriels vidéos:

Approche 2: pile de messages

Utilisez la pile de messages , qui se compose de ces modules (les citations proviennent de la page de projet du module):

  • Message :

    Le module Message est le cœur de la pile de messages. Il permet de consigner et d'afficher les événements système dans un certain nombre de cas d'utilisation différents. Les événements enregistrés au fil du temps sont parfois des flux d'activités d'appel. Des sous-types de messages exportables peuvent être créés pour différents cas d'utilisation avec des champs personnalisés et des modes d'affichage (affichage).

  • Message Notifier .

    Ce module fournit une méthode pour envoyer un message via un plugin de notification. Message Notify est livré avec des plugins pour les e-mails et les SMS et peut être étendu à d'autres mécanismes de transport selon les besoins.

  • Message Abonnez-vous .

    Avec ce module, les utilisateurs qui s'abonnent au contenu seront avertis lorsque des événements impliquant ce contenu se produisent. Le module utilise le module Flag, qui fournit une fonctionnalité d'abonnement aux utilisateurs.

Ce sont les composants de base et les dépendances de la pile de messages:

entrez la description de l'image ici

Un certain nombre de distributions Drupal populaires déjà adoptées pour cette pile de messages, telles que Commerce Kickstart , Drupal Commons , ERPAL et Open Atrium .

Si vous voulez regarder de plus près la pile de messages dans votre propre environnement, expérimentez un peu le module Réponses (divulgation: je suis un co-responsable), ainsi que le sous-module Notification des réponses , qui permet de se connecter aux utilisateurs de s'abonner aux questions sélectionnées, afin qu'ils reçoivent des notifications (à l'aide de la pile de messages ) lorsque les questions reçoivent des réponses.

Et la pile de messages vous rendra également bien positionné pour Drupal 8 (en raison de l'architecture orientée objet des modules). Même si la version 8.x-dev n'existe pas encore, le référentiel de code de message contient déjà quelque chose (pas encore pour les 2 autres modules cependant). Je suppose que la wippartie du nom de la branche signifie «Work In Progress».

Pierre.Vriens
la source
will make you well positioned for Drupal 8 also.tu veux dire à l'avenir? Je vois qu'aucun des modules de message n'a encore de version Drupal 8, pas même un dev.
Pas de Sssweat
1
Hé @NoSssweat ... J'ai légèrement étendu (puis à la fin de) ma réponse pour clarifier la partie D8.
Pierre.Vriens
Merci beaucoup pour votre gentillesse réponse @ Pierre.Vriens, je vais vérifier tous les documents liés en espérant avoir une idée claire de la pile des messages ...
Charbel El Azzi
1
Je veux dire que je suis familier sur la façon de faire fonctionner le système de notification entre les utilisateurs de mon site Web et maintenant j'en ai appris plus sur la pile de messages, ce dont je suis heureux, mais je suis toujours confus sur la façon dont je peux concevoir un tel menu déroulant de notification. .
Charbel El Azzi
1
Un autre exemple pour mieux comprendre mon problème: jetez un œil au menu déroulant lorsque vous survolez le panier dans le site Web de commerce kickstart 2 (si vous connaissez la distribution de kickstart) ... un tel système de liste déroulante que je recherche dans ma question ... merci encore pour votre temps et vos efforts chers @ Pierre.Vriens, que Dieu vous bénisse.
Charbel El Azzi
3

Il y a une paire de modules relativement nouveaux que je pense que ce serait génial à utiliser pour cela: Message et Message-notify .

Le message est essentiellement un cadre pour créer des "messages", qui dans votre cas seraient des éléments de notification. Une chose intéressante est que ceux-ci sont en fait tous créés en tant qu'entités, il serait donc facile de les afficher dans un bloc déroulant, d'avoir une page Toutes les notifications, ainsi qu'un champ ou un drapeau personnalisé qui indique s'ils ont été vu (ou sont nouveaux). Vous pouvez ensuite le connecter aux notifications par e-mail avec le module Message-notify .

Notez cependant que l'intégration de cela dans votre site serait une tâche de développement plus qu'une tâche de création de site. Le module a une bonne API qui peut être utilisée dans les hooks appropriés, etc. pour créer des messages quand vous le souhaitez, mais je ne sais pas comment va l'intégration des règles.

Goron
la source
3

Pour une intégration en temps réel, vous pouvez utiliser le module nodejs.

Ce module intègre Node.js à Drupal.

Il fournit une API que d'autres modules peuvent utiliser pour ajouter des fonctionnalités en temps réel à Drupal, permettant notamment de pousser les mises à jour pour ouvrir les clients connectés.

RajneeshB
la source