Recevoir un mail pour tout commentaire posté
dans Modifications
Salut à tous,
Existe-il une méthode (sans toucher au core) pour que je puisse recevoir un mail à chaque fois qu'un commentaire est posté sur mon blog ?
Bonne soirée et merci d'avance
.
Existe-il une méthode (sans toucher au core) pour que je puisse recevoir un mail à chaque fois qu'un commentaire est posté sur mon blog ?
Bonne soirée et merci d'avance
0
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Non pour le moment je ne pense pas. Mais je vais prévoir le coup pour la prochaine version pour qu'on puisse faire ça a partir d'un plugin
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci de ta réponse. Je vais donc modifier le core, ça m'embête de devoir le faire, mais je veux vraiment pouvoir recevoir un mail
Pourrais-tu m'indiquer le meilleur fichier pour réaliser cette modification ?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Le code est une mise à jour de celui de Ludovic trouvé ici pour être compatible avec bêta 5.1 de pluxml
Dans 'core/lib/class.plx.motor.php' rechercher la fonction (ligne 745):
public function addCommentaire($comment) {Et remplacer TOUTE la fonction par :/** * Méthode qui envoie un email de supervision lorsqu'un commentaire est posté. * Partie envoi mail inspirée de la page statique 'formulaire de contact' de florent@pluxml.org * IMPORTANT = Renseigner la variable $eTo avec l'adresse destinataire * * @param article titre de l'article * @param author auteur du commmentaire * @param ip adresse IP posteuse du commmentaire * @param mail mail de l'auteur du commmentaire * @param site site de l'auteur du commmentaire * @param content contenu du commmentaire * L'email émis est au format html * addCommentaire() est modifiée pour utiliser cette fonction * * Ludovic AMATHIEU - aout 2010 * Fredric K. - 6 Mars 2011 => PluXml 5.1 */ public function mailSupervision($article, $comment) { $eTo = "votre_adresse_email@votre_hebergeur.fr"; // <-- Adresse destinataire de l'email de supervision $urlArticle = $this->urlRewrite('?article'.intval($this->plxRecord_arts->f('numero')).'/'.$this->plxRecord_arts->f('url')); (empty($mail)) ? $eFrom = $eTo : $eFrom = $mail; $article = str_replace("-"," ",$article); $eSubject = 'Commentaire de '.$comment['author'].', article : '.$article; $corps = 'Un commentaire concernant l\'article <strong>"'.$article.'"</strong> a été laissé par :'."<br /><br />"; $corps .= 'Son nom : <strong>'.$comment['author'].'</strong><br />'; $corps .= 'Son email : <a href="mailto:'.$comment['mail'].'">'.$comment['mail'].'</a><br />'; $corps .= 'Son site web : <a href="'.$comment['site'].'">'.$comment['site'].'</a><br />'; $corps .= 'Son adresse IP : '.$comment['ip'].'<br /><br />'; $corps .= '<u>Son commentaire :</u><br /><br />'; $corps .= $comment['content'].'<br /><br />'; $corps .= 'Pour consulter l\'article : <a href="'.$urlArticle.'">'.$urlArticle.'</a><br />'; # On retire certains caracteres $corps = str_replace("\r"," ",$corps); # On envoi le mail $headers = 'From: '.$eFrom."\n"; $headers .= 'MIME-Version: 1.0'."\n"; $headers .= 'Content-type: text/html; charset="'.PLX_CHARSET.'"'."\n"; $headers .= 'Content-transfer-encoding: 8bit'."\n"; @mail($eTo ,$eSubject ,$corps, $headers); } /** * Méthode qui crée physiquement le fichier XML du commentaire * * @param comment array avec les données du commentaire à ajouter * @return booléen * @author Anthony GUÉRIN, Florent MONTHEL et Stéphane F **/ public function addCommentaire($comment) { # Hook plugins if(eval($this->plxPlugins->callHook('plxMotorAddCommentaire'))) return; # On genere le contenu de notre fichier XML $xml = "<?xml version='1.0' encoding='".PLX_CHARSET."'?>\n"; $xml .= "<comment>\n"; $xml .= "\t<author><![CDATA[".plxUtils::cdataCheck($comment['author'])."]]></author>\n"; $xml .= "\t<type>".$comment['type']."</type>\n"; $xml .= "\t<ip>".$comment['ip']."</ip>\n"; $xml .= "\t<mail><![CDATA[".plxUtils::cdataCheck($comment['mail'])."]]></mail>\n"; $xml .= "\t<site><![CDATA[".plxUtils::cdataCheck($comment['site'])."]]></site>\n"; $xml .= "\t<content><![CDATA[".plxUtils::cdataCheck($comment['content'])."]]></content>\n"; # Hook plugins eval($this->plxPlugins->callHook('plxMotorAddCommentaireXml')); $xml .= "</comment>\n"; # Pour l'email de supervision $urlr = $_SERVER['REQUEST_URI']; $masque = '/core\/admin/i'; if(!preg_match ($masque,$urlr)) { $article = $this->plxRecord_arts->f('url'); $this->mailSupervision($article, $comment); } # On ecrit ce contenu dans notre fichier XML return plxUtils::write($xml,$comment['filename']); }Ne pas oublier de remplacer votre Mail dans $eToMerci beaucoup Frédéric !
/** * Méthode d'envoi de mail * * @param name string Nom de l'expéditeur * @param from string Email de l'expéditeur * @param to array/string Adresse(s) du(des) destinataires(s) * @param subject string Objet du mail * @param body string contenu du mail * @return boolean renvoie FAUX en cas d'erreur d'envoi * @author Amaury Graillat **/ public static function sendMail($name, $from, $to, $subject, $body, $contentType="text", $cc=false, $bcc=false) { if(is_array($to)) $to = implode(', ', $to); if(is_array($cc)) $cc = implode(', ', $cc); if(is_array($bcc)) $bcc = implode(', ', $bcc); $headers = "From: ".$name." <".$from.">\r\n"; $headers .= 'MIME-Version: 1.0'."\r\n"; // Content-Type if($contentType == 'html') $headers .= 'Content-type: text/html; charset="'.PLX_CHARSET.'"'."\r\n"; else $headers .= 'Content-type: text/plain; charset="'.PLX_CHARSET.'"'."\r\n"; $headers .= 'Content-transfer-encoding: 8bit'."\r\n"; if($cc != "") $headers .= 'Cc: '.$cc."\r\n"; if($bcc != "") $headers .= 'Bcc: '.$bcc."\r\n"; return @mail($to, $subject, $body, $headers); }Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
au lieu de renseigner dans le dur l'adresse à qui envoyer l'email,
ça ne serait pas plus simple d'utiliser celle de l'auteur de l'article en question ... ? :P
en utilisant Cordialement,
_____
D.San
J'utilise PluXML depuis la première heure et c'est la seul fonctionnalité qui me manque et que je dois rajouter à chaque mise à jour ;-)
Sinon, un grand bravo pour les plugins ckeditor, c'est nettement plus pratique à installer qu'avant.
en bonus : et si je souhaite que le mail parte vers plusieurs adresses mails (par exemple les gens qui postent régulièrement ou les différents administrateurs), comment est-ce que je requète tout ça ?
dans la classe plxUtils, où est-ce que je rentre les mails ?...
désolé je suis utilisateur, sans doute un peu graphiste, mais pas du tout codeur...
Je te conseille d'attendre la sortie proche 5.1.3.
Le plugin de notification de commentaire accompagnera sa sortie.
Sans trahir un secret, ce plugin fonctionne très bien et est super rapide en exécution.
L'annonce de Stéphane est ici :
http://forum.pluxml.org/viewtopic.php?pid=20652#p20652
Une option dans les paramètres de base serait l'idéal.
Justement, j'aimerais savoir comment récupérer l'email de l'user 001 depuis "class.plx.motor.php" ?
Ligne 33 public $aUsers = array(); #Tableau des utilisateurs ligne 546 eval($this->plxPlugins->callHook('plxMotorGetUsers'));Pas moyen de recouper tout ça ?
ET sinon, moi, j'aimerais bien récupérer des infos sur la personne connecté à l'admin !
<?php $xml=simplexml_load_file("data/configuration/users.xml"); foreach($xml->children() as $child) { echo $child->email . "<br />"; } ?>Si quelqu'un sait comment récupérer l'email de l'user 001 ?http://www.w3schools.com/xpath/xpath_syntax.asp
il faut utiliser le tableau $aUsers de $plxMotor
001: id de l'utilisateur
email, name, etc... l'info à récupérer
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)