VI. Tutoriels communautaires

Recevoir un MP lors de la suppression de son message sur un sujet

Dernière mise à jour : 14/08/2017 à 12h36
Bonjour,

Voici deux petits addon pour le forum, ceux-ci vous permet pour le premier, que l'auteur puisse recevoir MP lorsqu'un membre ou un admin supprime un message de quelqu'un sur son sujet. Et le deuxième addon permet au membre de recevoir un MP lorsqu'un modérateur ou un admin supprime son message sur un sujet du forum.


Installation du premier addon



Il suffit de vous rendre dans /forum/Forum.class.php puis juste en dessous de la ligne :
Code PHP :
PersistenceContext::get_querier()->delete(PREFIX . 'forum_msg', 'WHERE id=:id', array('id' => $idmsg));


Ajoutez ceci:

Code PHP :
// On récupère l'user_id du posteur, et le titre du sujet
                try {
                    $topic = PersistenceContext::get_querier()->select_single_row(PREFIX . 'forum_topics', array('title, user_id'), 'WHERE id=:id', array('id' => $idtopic));
 
 
                } catch (RowNotFoundException $e) {
                    $error_controller = PHPBoostErrors::unexisting_element();
                    DispatchManager::redirect($error_controller);
                }
 
            // Envoi du MP à l'auteur du topic en cas de suppression d'un message sur son topic.
                $pm_content = 'Cher membre,<br/><br/> nous vous informons qu\'un message a été supprimé sur votre sujet: <b>'.$topic['title'].'</b>.<br/> Cela peut être dû au fait qu\'un membre du site a supprimé son message, ou alors celui-ci a était modéré par l\'équipe du site.<br/><br/> Contactez-nous pour plus de renseignements.';
            PrivateMsg::start_conversation(
                $topic['user_id'], 
                 'Message supprimé dans le sujet: '.$topic['title'], 
                $pm_content, 
                -1, 
                PrivateMsg::SYSTEM_PM
            );


Installation du deuxième addon



Pour le second addon il vous suffit de placer ce code à la suite du premier addon

Code PHP :
            // Envoi du MP à l'auteur du message en cas de suppression de celui-ci
             // Condition, si l'user_id du posteur du message est différent de l'utilisateur connecté, comme ça on envoi rien si l'utilisateur supprime son propre message.
if ($msg_user_id != AppContext::get_current_user()->get_id()) {
            $pm_content = 'Bonjour, <br/><br/>
            Nous vous informons que votre message a été supprimé du sujet '.$topic['title'].' par un membre de notre équipe. <br/><br/>
            Si vous n\'en connaissais pas la raison, contactez-nous.';
            PrivateMsg::start_conversation(
                $msg_user_id, 
                 'Message supprimé dans le sujet: '.$topic['title'], 
                $pm_content, 
                -1, 
                PrivateMsg::SYSTEM_PM
            );
}


Si vous souhaitez installer que le second addon mais pas le premier alors ajoutez le code la:

Code PHP :
                try {
                    $topic = PersistenceContext::get_querier()->select_single_row(PREFIX . 'forum_topics', array('title, user_id'), 'WHERE id=:id', array('id' => $idtopic));
 
 
                } catch (RowNotFoundException $e) {
                    $error_controller = PHPBoostErrors::unexisting_element();
                    DispatchManager::redirect($error_controller);
                }
      // Envoi du MP à l'auteur du message en cas de suppression de celui-ci
             // Condition, si l'user_id du posteur du message est différent de l'utilisateur connecté, comme ça on envoi rien si l'utilisateur supprime son propre message.
if ($msg_user_id != AppContext::get_current_user()->get_id()) {
            $pm_content = 'Bonjour, <br/><br/>
            Nous vous informons que votre message a été supprimé du sujet '.$topic['title'].' par un membre de notre équipe. <br/><br/>
            Si vous n\'en connaissais pas la raison, contactez-nous.';
            PrivateMsg::start_conversation(
                $msg_user_id, 
                 'Message supprimé dans le sujet: '.$topic['title'], 
                $pm_content, 
                -1, 
                PrivateMsg::SYSTEM_PM
            );
}
 


Juste en dessous de :

Code PHP :
PersistenceContext::get_querier()->delete(PREFIX . 'forum_msg', 'WHERE id=:id', array('id' => $idmsg));


Voilà c'est désormais fonctionnel ! :)
Cette page a été vue 1380 fois