You must be registered for see images attach
Hi

Voici la quatrième partie tutoriel qui va vous apprendre à créer un registre des membres bannis de la Shoutbox.
Première partie
Seconde partie
Troisième partie
Précédemment, dans la troisième partie nous avions fait notre DataWriter ainsi qu'une partie du Model, maintenant nous allons nous concentrer sur la partie Controller, celle qui va nous permettre lors du bannissement, d'ajouter notre utilisateur dans notre table.
On va donc commencer par la création d'un nouveau dossier (et oui encore

Je vous rappelle que ce dossier doit être créé dans le dossier BannedShoutboxMembers, que nous avons créé dans la première partie.
Une fois ce nouveau dossier créé, nous allons y ajouter un fichier : Shoutbox.php.
Ouvrons le.
Comme d'habitude, on y insère la base :
PHP:
<?php
Ensuite, on ajoute notre class que l'on étend par la même en y ajoutant XFCP_ devant :
PHP:
class BannedShoutboxMembers_ControllerPublic_Shoutbox extends XFCP_BannedShoutboxMembers_ControllerPublic_Shoutbox
On étend notre class par la même car l'on va ajouter un Auditeur D'événement dessus 
Là on reprend la fonction actionBan() de la Shoutbox que l'on va donc étendre pour y ajouter notre code :
Là on reprend la fonction actionBan() de la Shoutbox que l'on va donc étendre pour y ajouter notre code :
PHP:
public function actionBan()
{
$response = parent::actionBan();
if (isset($response->redirectType) && $response->redirectType == XenForo_ControllerResponse_Redirect::SUCCESS)
{
$taigamodel = $this->_getTaigaChatModel();
$messageId = $this->_input->filterSingle('id', XenForo_Input::UINT);
$message = $taigamodel->getMessageById($messageId);
$dw = XenForo_DataWriter::create('BannedShoutboxMembers_DataWriter_Shoutbox');
$dw->set('banned_user_id', $message['user_id']);
$dw->save();
}
return $response;
}
Une explication s'impose
- $response = On récupère le parent de la class originale pour la fonction actionBan()
- $taigamodel = Model original de la Shoutbox
- $messageId = ID du message
- $message = Récupération du message via son ID
- $dw = On récupère notre DataWriter
- $dw->set('..') = On définit la valeur du champ banned_user_id
- $dw->save() = On sauvegarde la valeur dans notre table sur la BDD
- return $response = On retourne le parent
Le fichier complet :
PHP:
<?php
class BannedShoutboxMembers_ControllerPublic_Shoutbox extends XFCP_BannedShoutboxMembers_ControllerPublic_Shoutbox
{
public function actionBan()
{
$response = parent::actionBan();
if (isset($response->redirectType) && $response->redirectType == XenForo_ControllerResponse_Redirect::SUCCESS)
{
$taigamodel = $this->_getTaigaChatModel();
$messageId = $this->_input->filterSingle('id', XenForo_Input::UINT);
$message = $taigamodel->getMessageById($messageId);
$dw = XenForo_DataWriter::create('BannedShoutboxMembers_DataWriter_Shoutbox');
$dw->set('banned_user_id', $message['user_id']);
$dw->save();
}
return $response;
}
}
Pour faire fonctionner tous ça, il va maintenant falloir créer notre Auditeur D'événement, c'est très simple
Pour ce faire, créer un fichier nommé : Listener.php dans le dossier BannedShoutboxMembers :
Ouvrons le.
Bon on y insère la base :
PHP:
<?php
Ensuite, on définit la class :
PHP:
class BannedShoutboxMembers_Listener
On ajoute notre fonction statique :
PHP:
public static function loadController($class, array &$extend)
{
if ($class == "Dark_TaigaChat_ControllerPublic_TaigaChat")
{
$extend[] = "BannedShoutboxMembers_ControllerPublic_Shoutbox";
}
}
Explications :
- $class = Nom de la class à étendre
- $extend = Nom de notre class grâce à laquelle on étend la class donné par $class
Le fichier complet :
PHP:
<?php
class BannedShoutboxMembers_Listener
{
public static function loadController($class, array &$extend)
{
if ($class == "Dark_TaigaChat_ControllerPublic_TaigaChat")
{
$extend[] = "BannedShoutboxMembers_ControllerPublic_Shoutbox";
}
}
}
Mais ce n'est pas tout ! Il va falloir créer cet Auditeur dans l'Admin CP !
On accède facilement au formulaire de création d'Auditeurs via ce lien : admin.php?code-event-listeners/add
Remplissez les champs (les champs sont en anglais pour moi, mais je les fais dans l'ordre) comme ceci :
On accède facilement au formulaire de création d'Auditeurs via ce lien : admin.php?code-event-listeners/add
Remplissez les champs (les champs sont en anglais pour moi, mais je les fais dans l'ordre) comme ceci :
- Listen to Event = load_class_controller
- Event Hint = Laissez vide
- Execute callback = BannedShoutboxMembers_Listener::loadController
- Callback execution order = 10
- Enable callback execution = Laissez coché
- Description = Je laisse vide pour ma part
- Add-on = Membres bannis de la shoutbox
Sauvegardez.
Vous pouvez tester
Quand vous bannissez quelqu'un il apparaît dans votre table sur la BDD 
Screenshot :
Merci d'avoir suivi cette quatrième partie
On se retrouve au plus vite pour la cinquième
© Good Topic Premium 2015 - Walky GTP
Vous pouvez tester

Screenshot :
You must be registered for see images attach
Merci d'avoir suivi cette quatrième partie

On se retrouve au plus vite pour la cinquième

© Good Topic Premium 2015 - Walky GTP