Forum

Créations de Modules [Tutoriel] Recevoir l'activité du site sur Discord

Myster Membre non connecté

Booster Missile

Rang

Avatar

Inscrit le : 04/10/2010 à 19h18

Messages: 1101

Le 26/05/2021 à 15h04

capture_2d74f



En cas de mise à jour de PHPBoost certaines modifications peuvent être retirés, si c'est le cas il suffit de refaire simplement les étapes du tutoriel.

Bonjour,

Voici un petit tutoriel pour recevoir l'activité du site directement sur votre serveur Discord. Imaginons qu'un membre poste un sujet sur le forum, et vous recevez sur Discord une petite notification informant les personnes sur votre Discord qu'il y a un nouveau sujet.

Pour cela, vous devez télécharger le fichier ci-dessous:

Discord.zip

Et vous pouvez l'extraire dans le dossier Forum de votre site.


Ouvrez le fichier que vous venez d'extraire et ensuite il faut modifier deux valeurs, à savoir l'URL de l'HOOK, vous mettrez l'url de votre Hook discord, et ensuite l'url pour l'avatar du robot, à mettre absolument sinon le système ne fonctionnera pas !


Maintenant la class Discord est prête à fonctionner.


Recevoir un message sur Discord lorsqu'un membre poste un message dans un sujet


Caché :
Rendez-vous dans forum/post.php puis vers la ligne 262 (environs) et remplacer le code suivant
Code PHP :
 
                                    if ($config->are_multiple_posts_allowed() || ForumAuthorizationsService::check_authorizations()->multiple_posts() || $topic['last_user_id'] != AppContext::get_current_user()->get_id()) 
                    $last_msg_id = $Forumfct->Add_msg($idt_get, $topic['idcat'], $contents, $topic['title'], $last_page, $last_page_rewrite);
 



par celui-ci

Code PHP :
 
                if ($config->are_multiple_posts_allowed() || ForumAuthorizationsService::check_authorizations()->multiple_posts() || $topic['last_user_id'] != AppContext::get_current_user()->get_id()) {
                    $last_msg_id = $Forumfct->Add_msg($idt_get, $topic['idcat'], $contents, $topic['title'], $last_page, $last_page_rewrite);
                    $discord = (new Discord())
                        ->setTitle('Nouveau message sur le forum')
                        ->addField('Titre ', $topic['title'])
                        ->addField('Extrait ', mb_strimwidth($contents, 0, 255, '...'))
                        ->addField('Auteur ', AppContext::get_current_user()->get_display_name())
                        ->addField('URL', 'http://' . $_SERVER['HTTP_HOST'] . "/forum/topic" . url('.php?id=' . $idt_get . $last_page, '-' . $idt_get . $last_page_rewrite . '.php', '&') . '#m' . $last_msg_id)
                        ->send();
                } 
 



Recevoir un message sur discord lorsqu'un topic a été posté


Caché :
Dans forum/post.php juste en dessous de :

Code PHP :
 
list($last_topic_id, $last_msg_id) = $Forumfct->Add_topic($id_get, $title, $subtitle, $contents, $type); //Insertion nouveau topic.
 


Ajouter ceci:
Code PHP :
 
                    $discord = (new Discord())
                        ->setTitle('Nouveau sujet sur le forum')
                        ->addField('Titre ', $title)
                        ->addField('Extrait ', mb_strimwidth($contents, 0, 255, '...'))
                        ->addField('Auteur ', AppContext::get_current_user()->get_display_name())
                        ->addField('URL', 'http://' . $_SERVER['HTTP_HOST'] . "/forum/topic" . url('.php?id=' . $last_topic_id))
                        ->send();
 



Recevoir un message sur discord lorsqu'une news a été postée


Caché :
Dans /news/controllers/NewsFormController.class.php juste en dessous de

Code PHP :
 
                        $id_news = NewsService::add($news);
 


Ajouter ceci:
Code PHP :
 
            $discord = (new Discord())
                ->setTitle('Nouvelle news sur le site')
                ->setThumbnail("http://{$_SERVER['HTTP_HOST']}/{$news->get_picture()->relative()}")
                ->addField('Titre ', $news->get_name(), true)
                ->addField('Catégorie ', $news->get_category()->get_name(), true)
                ->addField('Extrait ', mb_strimwidth($news->get_contents(), 0, 255, '...'))
                ->addField('Auteur ', AppContext::get_current_user()->get_display_name())
                ->addField('URL', 'http://' . $_SERVER['HTTP_HOST'] . NewsUrlBuilder::display_news($news->get_category()->get_id(), $news->get_category()->get_rewrited_name(), $id_news, $news->get_rewrited_name())->relative())
                ->send();
 


Recevoir un message sur discord lorsqu'un article a été posté


Caché :
Dans /articles/controllers/ArticlesFormController.class.php juste en dessous de

Code PHP :
 
            $id_article = ArticlesService::add($article);
 


Ajouter ceci:
Code PHP :
 
            $discord = (new Discord())
                ->setTitle('Nouvel article sur le site')
                ->setThumbnail("http://{$_SERVER['HTTP_HOST']}/{$article->get_picture()->relative()}")
                ->addField('Titre ', $article->get_title(), true)
                ->addField('Catégorie ', $article->get_category()->get_name(), true)
                ->addField('Extrait ', mb_strimwidth($article->get_contents(), 0, 255, '...'))
                ->addField('Auteur ', AppContext::get_current_user()->get_display_name())
                ->addField('URL', 'http://' . $_SERVER['HTTP_HOST'] . ArticlesUrlBuilder::display_article($article->get_category()->get_id(), $article->get_category()->get_rewrited_name(), $id_article, $article->get_rewrited_title())->relative())
                ->send();
 


Si vous avez d'autres besoins au niveau d'intégrations n'hésitez pas ! Edité par Myster Le 28/05/2021 à 10h14
   
Swan Membre non connecté

Booster Mortier

Rang

Avatar

Inscrit le : 31/05/2013 à 12h34

Messages: 795

Le 26/05/2021 à 15h08
Un grand Merci pour cet addon ;)
Site web    
Myster Membre non connecté

Booster Missile

Rang

Avatar

Inscrit le : 04/10/2010 à 19h18

Messages: 1101

Le 26/05/2021 à 16h33
Petite mise à jour de la class Discord pour éviter des erreurs lorsque des variables de class sont NULL.
Ajout également des addons "Articles" et "News"
   
Lapoésie01600 Membre non connecté

Booster Bazooka

Rang

Avatar

Inscrit le : 22/09/2020 à 20h55

Messages: 198

Le 26/05/2021 à 17h31
Merci beaucoup .......


Poétiquement,

La Poésie 01600
Héberger grâce à vous chez o2Switch
Mes sites : La Poésie 01600 (PHPBoost) et Les animaux de Mathéo (PHPBoost) .
Site web    
MickaelFR Membre non connecté

Booster Fusée

Rang

Avatar

Inscrit le : 20/01/2014 à 11h01

Messages: 1669

Le 29/05/2021 à 07h19
Merci :)
Izutox Membre non connecté

Booster Fuzil

Rang

Avatar

Inscrit le : 22/01/2020 à 14h02

Messages: 84

Le 30/05/2021 à 14h47
Tu nous régale, merci beaucoup ! :)
   
Izutox Membre non connecté

Booster Fuzil

Rang

Avatar

Inscrit le : 22/01/2020 à 14h02

Messages: 84

Le 03/07/2022 à 02h57
Bonsoir, j'aurais voulu savoir éventuellement quels fichiers je devais modifier pour que le module envoie un message lors de la publication et non lorsque l'on met une news ou un article en brouillons ?
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
Annonces