web-dev-qa-db-fra.com

Comment créer des notifications utilisateur de style Facebook?

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 tenir 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 pouvaient 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 parviens pas à trouver le bon module à ce stade: il y a les notifications utilisateur et Modules de notification , qui seraient les solutions parfaites sauf que seules les versions D6 existent. Il y a Notifications qui ne peuvent être intégrées à aucun module de journalisation d'activité 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éroulants avec des listes de activités, mais ne comptez pas le nombre de nouvelles activités et ne vous intégrez plus aux règles. Enfin DLike est génial comme compteur dynamique, même si pour le moment il ne compte 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 à celle-ci dans Drupal 7? facebook

14
David Gurran 82

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)

enter image description here

Ajout de badges aux menus

Une fois activé, accédez à Administration > Structure > Menus, puis 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 > Menus appelé "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 Vues . 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 "Il suffit de créer une vue appropriée".

Tutoriels vidéos:

Approche 2: pile de messages

Utilisez le Message Stack , 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é 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 Notify .

    Ce module fournit une méthode pour envoyer un message via un plugin de notification. Message Notify est livré avec des plugins pour le courrier électronique et SMS et peut être étendu à d'autres mécanismes de transport si nécessaire.

  • Message S'abonner .

    Avec ce module, les utilisateurs qui s'abonnent au contenu seront avertis lorsque des événements impliquant ce contenu se produisent. Le module exploite 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:

enter image description here

Quelques distributions populaires Drupal 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, essayez un peu le module Réponses (divulgation: je suis un co-responsable), ainsi que le Nswers Notification sous-module, qui permet aux utilisateurs connectés de s'abonner aux questions sélectionnées, afin qu'ils reçoivent des notifications (en utilisant Message Stack ) lorsque les questions reçoivent des réponses.

Et la pile de messages vous rendra bien positionné pour Drupal 8 aussi (à cause de l'architecture orientée objet des modules). Même s'il n'existe pas encore de 8.x-dev, le Message le dépôt de code contient déjà quelque chose déjà (pas encore pour les 2 autres modules cependant). Je suppose que la partie wip du nom de la branche signifie ' Travail en cours ".

4
Pierre.Vriens

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

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 que d'avoir 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.

3
goron

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.

3
RajneeshB