Mettre un message en gras automatiquement sur votre shoutbox XenForo via une permission.

Statut
N'est pas ouverte pour d'autres réponses.

Kévin 🚀

Administrateur
Administrateur
Inscription
18 Décembre 2012
Messages
4 822
Réactions
5 531
Points
27 882
Hello :RG:,
Aujourd'hui je vous propose un court tutoriel qui vous permettra de mettre en gras les messages mis par un membre de votre équipe sur la TaigaChat XenForo :)
article_separator.png

Sommaire :
1 - Activation du mode développeur
2 - Modification du fichier TaigatChat.php
3 - Essai du système

article_separator.png


1 - Activation du mode développeur :
Pour activer le mode développeur sur votre forum XenForo il faut aller éditer le fichier config.php qui se trouve dans le dossier library, ouvrez le fichier puis ajoutez là cette ligne en dessous des autres lignes déjà présentes : $config['debug'] = true;
Sauvegardez le fichier, puis allez dans votre Admin CP normalement un nouvel onglet est apparu il s'appel développement.

article_separator.png


2 - Modification du fichier TaigaChat.php
Le fichier se trouve dans le dossier library/Dark/TaigaChat/ControllerPublic , ouvrez le fichier puis rendez-vous à la ligne 260 vous devrez normalement avec code :
PHP:
$dw = XenForo_DataWriter::create('Dark_TaigaChat_DataWriter_Message');
$dw->set('user_id', $visitor['user_id']);
$dw->set('username', $visitor['user_id'] > 0 ? $visitor['username'] : new XenForo_Phrase('guest'));         
$dw->set('message', $input['message']);
$dw->save();
Nous allons prendre ce code mais nous allons le modifier et lui ajouter une condition pour savoir si le membre qui envoie le message dispose bien de la permission pour écrire en gras donc pour cela nous allons définir une nouvelle permission, pour définir cette nouvelle permission il faut aller dans l'onglet développeur de votre Admin CP puis cliquer sur Définition des permissions qui se trouve dans la sidebar gauche.

Une fois sur la page des permissions vous allez cliquer sur + Nouvelle permission , une nouvelle page va s'afficher sur votre écran et vous allez remplir les cases comme ceci :
  • ID de la permission : StringBold
  • Titre : Mets les messages postés dans la shoutbox automatiquement en gras
  • Permissions des groupes : permissions générales
  • Dépend de l'ID de la permission : vous laissez le champ vide
  • Type de permission : Drapeau
  • Interface de groupe : permissions générales
  • Extension : Vous l'attribuer a l'extension TaigaChat
Une fois tous les champs complétés faite sauvegarder la permission.

Maintenant que notre permission est définie il faut l'ajouter au groupe d'utilisateurs qui sont membres de l'équipe je vous laisse gérer cette partie car je ne connais pas votre configuration au niveau des groupes d'utilisateurs.

Revenons au fichier TaigaChat.php
Maintenant que notre permission est active sur votre groupe d'utilisateurs nous allons ajouter le code qui passera automatiquement vos messages en gras sur la shoutbox.

Vous allez remplacer le code que j'ai cité plus haut par ce nouveau code.
PHP:
if($visitor->hasPermission('general', 'StringBlod')){
       $dw = XenForo_DataWriter::create('Dark_TaigaChat_DataWriter_Message');
       $dw->set('user_id', $visitor['user_id']);
       $dw->set('username', $visitor['user_id'] > 0 ? $visitor['username'] : new XenForo_Phrase('guest'));
       $dw->set('message', '[B]'. $input['message'] .'[/B]');
       $dw->save();
}else{
      if(stripos($input['message'], '[b]') !== FALSE){
           throw $this->getErrorOrNoPermissionResponseException('');
      }else{
           $dw = XenForo_DataWriter::create('Dark_TaigaChat_DataWriter_Message');
           $dw->set('user_id', $visitor['user_id']);
           $dw->set('username', $visitor['user_id'] > 0 ? $visitor['username'] : new XenForo_Phrase('guest'));
           $dw->set('message', $input['message']);
           $dw->save();
      }
}
Petite explication sur la fonctionnalité du code, la première condition demande si l'auteur de la requête dispose de la permission si oui le message pas en gras si il ne dispose pas de la permission on regarde si son message contient la balise [b] qui correspond au gras en BBCode car oui le BBCode doit être activé sur la shoutbox sinon le message ne sera pas affiché en gras.

Donc on regarde si le message ne contient la balise [b] si il contient la balise on affiche une erreur comme quoi vous ne pouvez pas exécuter cette action, si le message ne contient pas la balise on affiche le message sans difficulté.

Une fois le code en place dans le fichier sauvegardez le est nous allons passer aux phases de test.

article_separator.png


3 - Essai du système :
Pour essayer le système il faudra avoir la permission d'activé et désactivé, nous allons commencer avec la permission activée dans votre groupe d'utilisateurs, postez un message est normalement celui-ci devrait s'afficher en gras sur votre shoutbox comme ceci :

2ImbyUn.png


Maintenant désactivez la permission dans votre groupe d'utilisateurs et mettez un message sur votre shoutbox vous devrez normalement obtenir ce résultat :

8ZzYAfR.png


Maintenant essayez de mettre votre message avec la balise [b] normalement vous aurez cette erreur qui s'affichera à l'écran :

KxVcdDc.png


Voilà maintenant vous pouvez donner la permission de parler en gras ou non sur votre shoutbox TaigaChat :)
J'espère que ce tutoriel vous aura plu, si vous avez des questions poser les en commentaire :)

Tchuss :tchuss:
 

Walky 🇫🇷

Cryptoboy
Ancien staff
Inscription
18 Octobre 2012
Messages
1 278
Réactions
1 187
Points
23 400
Pas mal mais il faut le BbCode d'activé :/

Il y a une méthode plus simple sans toucher les fichiers de l'add-on :) En passant par les conditions des templates et sans activer le BbCode :)

Sinon GG :D
 
Dernière édition:
Statut
N'est pas ouverte pour d'autres réponses.
Haut