Notifications | PHPBoost 5.0
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Aujourd'hui je vous présente un module pour PHPBoost 5.0.
Notifications!
Un module permettant d'envoyer des notifications à vos membres lorsque d'autres personnes interagissent avec leurs contenus. C'est-à-dire que si un membre poste un sujet sur le forum et qu'un autre membre envoie un message dans ce sujet, le membre qui a créé le sujet recevra une notification lui indiquant que le membre a ajouté une réponse à son sujet.
De base le module de notifications ne communique pas avec les différents modules de PHPBoost, c'est pour cela que vous devez mettre en oeuvre les addons qui sont proposés sur cette page !
Liste des fonctionnalités!
- Envoyer une notification à un membre, ou tous les membres depuis l'administration
- Gérer le nombre de notifications par pages
- Archivage des notifications une fois lues
- Supprimer une notification en particulier (ou toutes d'un coup)
- Activation/Désactivation de la suppression automatique des notifications après la lecture
- Recevoir des notifications sur les différents modules de PHPBoost grâce aux addons ci-dessous
- Option permettant l'archivage automatique des notifications (à activer dans l'administration)
- Possibilité d'archiver une notification spécifique si l'option d'archivage automatique n'est pas activée.
Mais pourquoi tu nous parles d'addons ?
Les addons sont des petits morceaux de code à ajouter sur le module pour lequel il a été fait afin justement "d'activer" les notifications pour ce module. Vous trouverez de plus amples détails ci-dessous.
Preview du module
Lien de téléchargement
Pour télécharger le module Notifications pour PHPBoost 5.0 Cliquez-ici
Les addons
Donc comme vous l'aurez compris ce module fonctionne grâce à des addons ! Sans cela, la seule fonctionnalité du module c'est de pouvoir envoyer une notification à un membre depuis votre espace d'administration, ce n'est pas vraiment ce que l'on souhaite j'imagine ! Donc voici les différents addons
Recevoir une notification lorsque quelqu'un poste un message dans notre sujet[
Recevoir une notification lorsque qu'un modérateur ou administrateur supprime notre sujet
Recevoir une notification lorsqu'un membre répond à notre sondage
Recevoir une notification lorsqu'un modérateur ou un administrateur verrouille notre sujet
Recevoir une notification lorsqu'un modérateur ou un administrateur déverrouille notre sujet
Recevoir une notification lorsque notre contribution est mise à jour
Connaître le nombre de notification(s) dans le module connect ..
A FAIRE ABSOLUMENT AVANT D'INTEGRER LES ADDONS
Certains addons nécessite des champs que certaines requêtes SQL de PHPBoost 5.0 n'ont pas (N'ayez crainte vous n'avez juste qu'à modifier une ligne pour demander à PHPBoost qu'il prenne en compte une colonne en plus ..)
Caché :
Par ceci:
Par le code suivant:
Voilà c'est tout !
- Il nous faut l'user_id du créateur du topic pour les différentes notifications donc allez dans forum/post.php, puis à la ligne 411 remplacez
Code PHP :
$topic = PersistenceContext::get_querier()->select_single_row_query('SELECT idcat, title, nbr_msg, last_user_id, last_msg_id, status FROM ' . PREFIX . 'forum_topics WHERE id=:id', array( 'id' => $idt_get ));
Par ceci:
Code PHP :
$topic = PersistenceContext::get_querier()->select_single_row_query('SELECT user_id, idcat, title, nbr_msg, last_user_id, last_msg_id, status FROM ' . PREFIX . 'forum_topics WHERE id=:id', array( 'id' => $idt_get ));
- Et pour finir il nous faut le titre du sujet donc allez dans forum/action.php à la ligne 69 puis remplacez ceci:
Code PHP :
Par le code suivant:
Code PHP :
Voilà c'est tout !
Liste des addons
Le forum
Recevoir une notification lorsque quelqu'un poste un message dans notre sujet
Caché :
Dans forum/post.php, A la ligne 495 juste après:
Ajoutez ceci:
Dans forum/post.php, A la ligne 495 juste après:
Code PHP :
$last_msg_id = $Forumfct->Add_msg($idt_get, $topic['idcat'], $contents, $topic['title'], $last_page, $last_page_rewrite);
Ajoutez ceci:
Code PHP :
if ($topic['user_id'] != AppContext::get_current_user()->get_id()) { $notify = New Notifications(); $notify->set_sender_id(AppContext::get_current_user()->get_id()); $notify->set_recipient_id($topic['user_id']); $notify->set_reading(0); $notify->set_date(time()); $notify->set_content(NotificationsFormat::contenu('forum.msg', array( 'url_username' => UserUrlBuilder::profile(AppContext::get_current_user()->get_id())->rel(), 'username' => AppContext::get_current_user()->get_display_name(), 'sujet' => $topic['title'], 'url' => PATH_TO_ROOT . "/forum/topic" . url('.php?id=' . $idt_get . $last_page, '-' . $idt_get . $last_page_rewrite . '.php', '&') . '#m' . $last_msg_id ))); Notifications::add_notification($notify); }
Recevoir une notification lorsque qu'un modérateur ou administrateur supprime notre sujet
Caché :
A la ligne 80 dans forum/action.php, juste en dessous de
ajoutez ceci:
A la ligne 80 dans forum/action.php, juste en dessous de
Code PHP :
$Forumfct->Del_topic($msg['idtopic']); //Suppresion du topic.
ajoutez ceci:
Code PHP :
if($topic['user_id'] != AppContext::get_current_user()->get_id()) { $notify = New Notifications(); $notify->set_sender_id(AppContext::get_current_user()->get_id()); $notify->set_recipient_id($topic['user_id']); $notify->set_reading(0); $notify->set_date(time()); $notify->set_content(NotificationsFormat::contenu('forum.del.topic', array( 'url_username' => UserUrlBuilder::profile(AppContext::get_current_user()->get_id())->rel(), 'username' => AppContext::get_current_user()->get_display_name(), 'sujet' => $topic['title'], ))); Notifications::add_notification($notify); }
Recevoir une notification lorsqu'un membre répond à notre sondage
Caché :
Ajoutez ceci:
- Dans forum/action.php à la ligne 217 en dessous de:
Code PHP :
Ajoutez ceci:
Code PHP :
if ($topic['user_id'] != AppContext::get_current_user()->get_id()) { $notify = New Notifications(); $notify->set_sender_id(AppContext::get_current_user()->get_id()); $notify->set_recipient_id($topic['user_id']); $notify->set_reading(0); $notify->set_date(time()); $notify->set_content(NotificationsFormat::contenu('forum.poll', array( 'url_username' => UserUrlBuilder::profile(AppContext::get_current_user()->get_id())->rel(), 'username' => AppContext::get_current_user()->get_display_name(), 'sujet' => $topic['title'], 'url' => PATH_TO_ROOT . "/forum/topic.php?id=".$idt_get ))); Notifications::add_notification($notify); }
Recevoir une notification lorsqu'un modérateur ou un administrateur verrouille notre sujet
Caché :
Dans le fichier forum/action.php vers la ligne 240 juste en dessous de
Ajoutez ceci:
Dans le fichier forum/action.php vers la ligne 240 juste en dessous de
Code PHP :
$Forumfct->Lock_topic($idt_get);
Ajoutez ceci:
Code PHP :
if ($topic['user_id'] != AppContext::get_current_user()->get_id()) { $notify = New Notifications(); $notify->set_sender_id(AppContext::get_current_user()->get_id()); $notify->set_recipient_id($topic['user_id']); $notify->set_reading(0); $notify->set_date(time()); $notify->set_content(NotificationsFormat::contenu('forum.lock.topic', array( 'url_username' => UserUrlBuilder::profile(AppContext::get_current_user()->get_id())->rel(), 'username' => AppContext::get_current_user()->get_display_name(), 'sujet' => $topic['title'], 'url' => PATH_TO_ROOT . "/forum/topic.php?id=".$idt_get ))); Notifications::add_notification($notify); }
Recevoir une notification lorsqu'un modérateur ou un administrateur déverrouille notre sujet
Caché :
Dans le fichier forum/action.php vers la ligne 257 juste en dessous de
Ajoutez ceci:
Dans le fichier forum/action.php vers la ligne 257 juste en dessous de
Code PHP :
$Forumfct->Unlock_topic($idt_get);
Ajoutez ceci:
Code PHP :
if ($topic['user_id'] != AppContext::get_current_user()->get_id()) { $notify = New Notifications(); $notify->set_sender_id(AppContext::get_current_user()->get_id()); $notify->set_recipient_id($topic['user_id']); $notify->set_reading(0); $notify->set_date(time()); $notify->set_content(NotificationsFormat::contenu('forum.unlock.topic', array( 'url_username' => UserUrlBuilder::profile(AppContext::get_current_user()->get_id())->rel(), 'username' => AppContext::get_current_user()->get_display_name(), 'sujet' => $topic['title'], 'url' => PATH_TO_ROOT . "/forum/topic.php?id=".$idt_get ))); Notifications::add_notification($notify); }
Les contributions
Pour les contributions j'ai fait qu'un seul addon donc à voir si y'a encore des choses à faire à ce niveau plus tard ..
Recevoir une notification lorsque notre contribution est mise à jour
Caché :
Rendez-vous dans /user/contribution_panel.php vers la ligne 111
Juste en dessous de :
Ajoutez ceci:
Rendez-vous dans /user/contribution_panel.php vers la ligne 111
Juste en dessous de :
Code PHP :
//Enregistrement en base de données ContributionService::save_contribution($contribution);
Ajoutez ceci:
Code PHP :
$notify = New Notifications(); $notify->set_sender_id(AppContext::get_current_user()->get_id()); $notify->set_recipient_id($topic['user_id']); $notify->set_reading(0); $notify->set_date(time()); $notify->set_content(NotificationsFormat::contenu('update.contrib', array( 'url_username' => UserUrlBuilder::profile(AppContext::get_current_user()->get_id())->rel(), 'username' => AppContext::get_current_user()->get_display_name(), 'contribution' => $topic['title'], 'url' => PATH_TO_ROOT."/user/contribution_panel.php?id=".$id_to_update ))); Notifications::add_notification($notify);
Module: "Connect"
Connaître le nombre de notification(s) dans le module connect ..[/b]
Caché :
- Allez dans [b]connect/phpboost/ConnectModuleMiniMenu.class.php vers la ligne 47 juste en dessous de :
Code PHP :$unread_contributions = UnreadContributionsCache::load();
Ajoutez ceci :
Code PHP :
Puis pour déclarer dans le template le nombre de notifications:
Vers la ligne 107 de ce même fichier juste en dessous de :
Code PHP :'NUMBER_UNREAD_CONTRIBUTIONS' => $contribution_number,
Ajoutez ceci :
Code PHP :'NBR_NOTIFICATIONS' => $nbr_notifications,
Vous pouvez maintenant afficher le nombre de notifications dans connect_mini.tpl qui se trouve dans connect/templates/connect_mini.tpl ou dans /templates/{Votre theme}/modules/connect/connect_mini.tpl
Édité par Myster Le 11/01/2019 à 16h55
Mipel Membre non connecté
- Administrateur
- Voir le profil du membre Mipel
- Inscrit le : 04/04/2016
- Site internet
- Groupes :
- Equipe Rédaction
- Equipe Modération
Merci pour ta contribution si récente que je n'ai pas encore pu la tester
Juste une question : tu nous propose une version 5.0 et une 5.2 mais qu'en est-il pour la 5.1 ?
Merci de penser à joindre le rapport système de votre site, il peut nous aider à mieux répondre à vos questions.
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
5.1 disponible a l'instant
Mipel Membre non connecté
- Administrateur
- Voir le profil du membre Mipel
- Inscrit le : 04/04/2016
- Site internet
- Groupes :
- Equipe Rédaction
- Equipe Modération
Merci de penser à joindre le rapport système de votre site, il peut nous aider à mieux répondre à vos questions.
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
MickaelFR Membre non connecté
Booster Fusée
- Booster Fusée
- Voir le profil du membre MickaelFR
- Inscrit le : 20/01/2014
- Site internet
- Groupes :
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Swan Membre non connecté
Booster Mortier
- Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Voici une mise à jour du module de notifications qui est disponible
- Option d'archivage automatique ou non des notifications dès la lecture.
- Archiver une notification spécifique (nouvelle icône à côté de la petite croix pour chaque notification)
- Nouveau système d'ajout de contenu de notification, désormais cela se passe dans les fichiers de langues ça évite d'avoir du texte en dur dans le code PHP
- Suppression de la balise TPL {SENDER_NAME} devenu inutile
- Indentation de tous les fichiers HTML et PHP
- Corrections de bugs
- Optimisation du code
Si vous aviez installer le module vous pouvez remplacer tous les fichiers PHP .. Et veuillez mettre à jour les ADDONS, ils sont de nouveaux disponibles sur la page principal de ce sujet ..
Faites une sauvegarde de votre tpl ainsi de que votre notifications.css si vous aviez effectué des modifications et regardez à quoi ressemble le nouveau. (y'a pas eu beaucoup de changement)
Édité par Myster Le 11/01/2019 à 17h16
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie