Envoyer un email à chaque nouvelle publication

Bonjour,

J'ai créer une fonction d'envoi de mail dans le fichier class.plx.admin.php afin qu'à chaque fois qu'un article soit créé un email soit envoyé à des destinataires afin de les informer d'un nouvel article sur le blog. J'ai insérer cette fonction d'envoi au niveau de la ligne 813

if($content == '0000' OR $content == '')
$this->mailSupervisionArticle2($article, $author, $ip, $mail, $site, $contenu);

Cette méthode fonctionne correctement mais j'ai un soucis car le mail est envoyé lorsque l'article est créé même s'il est en mode brouillon. Je souhaiterais qu'il soit envoyé uniquement lorsqu'il est créé (sans passer par le mode brouillon) ou lors du passage du mode brouillon au mode publié.

Une idée ou insérer ce code ?

A+

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    insere ton code dans le fichier core/lib/class.plx.admin.php après la ligne
    if($content['artId'] == '0000' OR $content['artId'] == '')
    
    pour tester si l'article est publié et pas en mode brouillon:
    if(!in_array('draft', $content['catId']))
    
    et dans le fichier core/lib/class.plx.utils.php, il y a une fonction pour envoyer un mail
    /**
    	* 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) {
    
    pour éviter de modifier le code de pluXml, je te conseille de faire plutot un plugin

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Bonjour,

    Merci, la première partie du code ci-dessous fonctionne correctement : l'email est envoyé si l'article est créé et il n'est pas en mode brouillon

    
    if ($content['artId'] == '0000' OR $content['artId'] == '') {
    if (!in_array('draft', $content['catId'])){
    $this->sendMail($name, $from, $to, $subject, $body, $contentType="text", $cc=false, $bcc=false)					
    }
    
    Le code ci-dessous permet également d'envoyer un email si l'article est déjà créé et n'est pas un brouillon.
    
    if ($content['artId'] =! '0000' OR $content['artId'] != '') {
    if (!in_array('draft', $content['catId'])){
    $this->sendMail($name, $from, $to, $subject, $body, $contentType="text", $cc=false, $bcc=false)					
    }
    
    Toutefois, existe t'il un paramètre pour spécifier qu'un article publié est simplement en mode modification (en cliquant sur le bouton "enregistrer") ce qui permettrais de ne pas envoyer de mail quand un article publié est modifié ?


    Cdlt
  • StéphaneStéphane Member, Former PluXml Project Manager
    non

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

Connectez-vous ou Inscrivez-vous pour répondre.