VI. Tutoriels communautaires

Personnaliser votre Newsletter

Dernière mise à jour : 11/02/2017 à 19h38

Introduction


La Newsletter est un des modules de PHPBoost qui permet de générer des mails automatiques contenant des informations liées à l'activité de votre site.

Nous allons voir ici comment personnaliser une Newsletter en lui ajoutant une ligne de copyright en bas de page:

Vous pouvez bien sûr, selon le même principe, ajouter d'autres éléments à votre Newsletter selon vos besoins.

tout va se passer dans le dossier /newsletter

----



le fichier common.php


Nous allons ajouter une nouvelle variable de langue:

ouvrir le fichier /newsletter/lang/french/common.php et copier cette ligne en dessous de la ligne 113 (ou environ):

Code PHP :
$lang['copyright_newsletter'] = '<div style="color:#0000FF;font-style:italic;font-size:14px;text-align:center;display:block;"><a href="http://votre_url_de_site.xx"> © ici_votre_copyright</a></div>';
 


La gestion des mails, avec les différents opérateurs (gmail, free, orange ...) fait que les feuilles de style css externes ne sont pas ou mal gérées donc on passera la mise en forme dans le fichier common.php. Dans cet exemple, la ligne de copyright sera centrée en bas de page, de couleur bleue, en italique de taille 14px et en forme de lien qui renverra vers votre site. Il faudra faire de même dans le fichier /newsletter/lang/english/common.php pour la version anglaise.

----



le fichier AbstractNewsletterMail.class.php


Ici, nous créons une fonction add_copyright() qui retournera le contenu de la variable de langue:

ouvrir le fichier /newsletter/services/AbstractNewsletterMail.class.php et copier ces lignes en dessous de la ligne 82:

Code PHP :
public function add_copyright() {
        return $this -> lang['copyright_newsletter'];
    }


pour obtenir ceci en fin du fichier:

Code PHP :
 public function add_unsubscribe_link() { 
 return ' [url=' . NewsletterUrlBuilder::unsubscribe() -> absolute() . ']' . $this -> lang['unsubscribe_newsletter'] . '[/url]'; 
    } 
    public function add_copyright() { 
        return $this -> lang['copyright_newsletter']; 
    } 
} 
?> 


----



Ajouter l'appel de la fonction


Pour créer une Newsletter, nous disposons de trois éditeurs de texte: Texte, BBcode et Html.

Nous allons donc modifier ces trois fichiers pour ajouter l'appel de la fonction qui génère l'affichage de la variable de langue dans le corps du mail.

le fichier TextNewsletterMail.class.php


ouvrir le fichier /newsletter/services/TextNewsletterMail.class.php et ajouter ceci en bout de la ligne 35:

Code PHP :
 . $this -> add_copyright(); 


pour obtenir ceci:

Code PHP :
$contents = $this->parse_contents($contents) . $this->add_unsubscribe_link(). $this -> add_copyright(); 


le fichier BBCodeNewsletterMail.class.php


ouvrir le fichier /newsletter/services/BBCodeNewsletterMail.class.php et copier cette ligne en dessous de la ligne 40:

Code PHP :
$mail_contents .= $this -> add_copyright(); 


pour obtenir ceci:

Code PHP :
public function send_mail($subscribers, $sender, $subject, $contents) { 
        $mail_contents = '<html><head><title>' . $subject . '</title></head><body>'; 
        $mail_contents .= $this -> parse_contents($contents) . $this -> add_unsubscribe_link(); 
        $mail_contents .= $this -> add_copyright(); 
        $mail_contents .= '</body></html>'; 
        parent::send_mail($subscribers, $sender, $subject, $mail_contents); 
    } 


le fichier HTMLNewsletterMail.class.php


ouvrir le fichier /newsletter/services/HTMLNewsletterMail.class.php et ajouter ceci en bout de la ligne 35:

Code PHP :
 . $this -> add_copyright(); 


pour obtenir ceci:

Code PHP :
$contents = $this->parse_contents($contents) . $this->add_unsubscribe_link(). $this -> add_copyright(); 


Vous n'avez plus qu'à affiner l'aspect graphique si besoin et à tester cette modification.

----



Avertissement




Attention: en cas de mise à jour du module ou de changement de version de pbt, ces modifications peuvent être perdues mais elles sont faciles à remettre en place. Dans ce cas, il est conseillé de faire une sauvegarde en local de tout le dossier /newsletter.
Cette page a été vue 10790 fois