Une lettre d'information automatique est une lettre d'information pré-paramétrée qui est envoyée aux abonnés selon une périodicité définie.
La lettre d'information est créée, remplie, validée et envoyée aux utilisateurs abonnés sans aucune intervention d'un contributeur.
Les lettres d'information automatiques sont paramétrées par l'intégrateur de l'application.
Définir une lettre d'information automatique
La définition d'une lettre d'information automatique est statique et définie par un point d'extension org.ametys.plugins.newsletter.auto.AutomaticNewsletterExtensionPoint dans un fichier plugin.xml.
Ce point d'extension permet de définir:
Le libellé de la lettre d'information
La description de la lettre d'information. Pour la compréhension du contributeur, il est fortement conseillé d'y préciser le contenu de la newsletter et sa périodicité
Le titre de la lettre d'information. Ce titre est notamment utilisé dans le sujet du mail de la newsletter envoyée. Le joker numberpeut être utilisé pour le numéro de la lettre d'information. Exemple: "Titre de ma lettre d'information {number}"
La périodicité de l'envoi. La périodicité peut-être soit hebdomadaire ("week") soit mensuelle ("month"). Dans les 2 cas il faut préciser le ou les jours de l'envoi séparés par des virgules. Pour le cas hebdomadaire le numéro du jour correspond au jour de la semaine (ex: 1=lundi, 4=jeudi). Pour le cas d'un envoi mensuel le numéro jour correspond au jour dans le mois.
Les filtres des contenus qui seront remontés et affichés dans la lettre d'information. Il s'agit ici des identifiants de filtres statiques (org.ametys.cms.filter.ContentFilterExtensionPoint) définis ailleurs dans l'application. Un nom est donné aux filtres pour savoir où afficher les contenus correspondants dans le template de la lettre d'information.
Exemple
Cas d'une lettre d'information qui sera envoyée chaque semaine le lundi et le samedi, contenant les 5 derniers événements publiés sur le site.
Les événements seront affichés dans la zone "contents" du modèle. Un article à mettre en avant sera affiché dans la zone "zoom" du modèle.
Déclaration de la lettre d'information automatique
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
<extension
point="org.ametys.plugins.newsletter.auto.AutomaticNewsletterExtensionPoint"
class="org.ametys.plugins.newsletter.auto.StaticAutomaticNewsletter"
id="automatic.newsletter.events">
<label i18n="false">Lettre d'information des derniers événements</label>
<description i18n="false">Lettre d'information des 5 derniers événements envoyée chaque semaine</description>
<newsletter-title i18n="false">Journal des événements n°{number}</newsletter-title>
<frequency type="week">1,6</frequency>
<filters>
<filter name="contents" id="newsletter.events.filter" />
<filter name="zoom" id="newsletter.zoom.filter" />
</filters>
</extension>
<extension
point="org.ametys.plugins.newsletter.auto.AutomaticNewsletterExtensionPoint"
class="org.ametys.plugins.newsletter.auto.StaticAutomaticNewsletter"
id="automatic.newsletter.events">
<label i18n="false">Lettre d'information des derniers événements</label>
<description i18n="false">Lettre d'information des 5 derniers événements envoyée chaque semaine</description>
<newsletter-title i18n="false">Journal des événements n°{number}</newsletter-title>
<frequency type="week">1,6</frequency>
<filters>
<filter name="contents" id="newsletter.events.filter" />
<filter name="zoom" id="newsletter.zoom.filter" />
</filters>
</extension>
<extension
point="org.ametys.plugins.newsletter.auto.AutomaticNewsletterExtensionPoint"
class="org.ametys.plugins.newsletter.auto.StaticAutomaticNewsletter"
id="automatic.newsletter.events">
<label i18n="false">Lettre d'information des derniers événements</label>
<description i18n="false">Lettre d'information des 5 derniers événements envoyée chaque semaine</description>
<newsletter-title i18n="false">Journal des événements n°{number}</newsletter-title>
<frequency type="week">1,6</frequency>
<filters>
<filter name="contents" id="newsletter.events.filter" />
<filter name="zoom" id="newsletter.zoom.filter" />
</filters>
</extension>
Déclaration des filtres associés
Filtre permettant de remonter les 5 derniers événements publiés (un événement est un contenu de type actualité tagué comme étant un événement).
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
<model lang="fr">
<table id="newsletter-sheet" cellpadding="0" cellspacing="0">
<tr>
<td id="newsletter-post">
<div class="edito-sheet">
<h1>Edito</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean pharetra ultrices eleifend. Suspendisse non odio justo, at elementum lorem.
Etiam eu tellus et leo varius mollis. In diam sem, placerat in molestie id, laoreet id ante.
Sed pretium tempus purus ut euismod. Aliquam in libero nulla, ut viverra tellus.
</p>
</div>
<div class="articles" auto-newsletter-ignore-if-empty="contents">
<p auto-newsletter-insert-filter="contents" auto-newsletter-insert-level="3">Insérez vos contenus ici</p>
</div>
</td>
<td id="newsletter-sidebar1">
<div class="encart" auto-newsletter-ignore-if-empty="zoom">
<h2>Zoom</h2>
<p auto-newsletter-insert-filter="zoom" auto-newsletter-insert-level="3">Aliquam sed ante libero. Phasellus aliquet tincidunt mauris. Praesent luctus lobortis elit, eget eleifend lacus dapibus pellentesque.</p>
</div>
</td>
</tr>
</table>
</model>
<model lang="fr">
<table id="newsletter-sheet" cellpadding="0" cellspacing="0">
<tr>
<td id="newsletter-post">
<div class="edito-sheet">
<h1>Edito</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean pharetra ultrices eleifend. Suspendisse non odio justo, at elementum lorem.
Etiam eu tellus et leo varius mollis. In diam sem, placerat in molestie id, laoreet id ante.
Sed pretium tempus purus ut euismod. Aliquam in libero nulla, ut viverra tellus.
</p>
</div>
<div class="articles" auto-newsletter-ignore-if-empty="contents">
<p auto-newsletter-insert-filter="contents" auto-newsletter-insert-level="3">Insérez vos contenus ici</p>
</div>
</td>
<td id="newsletter-sidebar1">
<div class="encart" auto-newsletter-ignore-if-empty="zoom">
<h2>Zoom</h2>
<p auto-newsletter-insert-filter="zoom" auto-newsletter-insert-level="3">Aliquam sed ante libero. Phasellus aliquet tincidunt mauris. Praesent luctus lobortis elit, eget eleifend lacus dapibus pellentesque.</p>
</div>
</td>
</tr>
</table>
</model>
<model lang="fr">
<table id="newsletter-sheet" cellpadding="0" cellspacing="0">
<tr>
<td id="newsletter-post">
<div class="edito-sheet">
<h1>Edito</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean pharetra ultrices eleifend. Suspendisse non odio justo, at elementum lorem.
Etiam eu tellus et leo varius mollis. In diam sem, placerat in molestie id, laoreet id ante.
Sed pretium tempus purus ut euismod. Aliquam in libero nulla, ut viverra tellus.
</p>
</div>
<div class="articles" auto-newsletter-ignore-if-empty="contents">
<p auto-newsletter-insert-filter="contents" auto-newsletter-insert-level="3">Insérez vos contenus ici</p>
</div>
</td>
<td id="newsletter-sidebar1">
<div class="encart" auto-newsletter-ignore-if-empty="zoom">
<h2>Zoom</h2>
<p auto-newsletter-insert-filter="zoom" auto-newsletter-insert-level="3">Aliquam sed ante libero. Phasellus aliquet tincidunt mauris. Praesent luctus lobortis elit, eget eleifend lacus dapibus pellentesque.</p>
</div>
</td>
</tr>
</table>
</model>
Plusieurs attributs spécifiques servent à définir le comportement de la lettre d'information automatique :
auto-newsletter-ignore-if-empty="contents" : ce bloc ne sera pas affiché dans la lettre d'information si aucun contenu n'est remonté par le filtre "contents".
auto-newsletter-insert-filter="contents" : définit l'élément HTML qui contiendra l'ensemble des contenus remontés par le filtre "contents". Le contenu de l'élément dans le modèle (balises et contenu textuel) est remplacé par le contenu du filtre.
auto-newsletter-insert-level="3" : niveau de titre des contenus remontés dans cette zone
Par exemple, si le filtre "contents" remonte deux contenus et si le filtre "zoom" n'en remonte aucun, la lettre d'information automatique aura le contenu suivant :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
<table id="newsletter-sheet" cellpadding="0" cellspacing="0">
<tr>
<td id="newsletter-post">
<div class="edito-sheet">
<h1>Edito</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean pharetra ultrices eleifend. Suspendisse non odio justo, at elementum lorem.
Etiam eu tellus et leo varius mollis. In diam sem, placerat in molestie id, laoreet id ante.
Sed pretium tempus purus ut euismod. Aliquam in libero nulla, ut viverra tellus.
</p>
</div>
<div class="articles">
<p>
<div class="article">Contenu 1...</div>
<div class="article">Contenu 2...</div>
</p>
</div>
</td>
<td id="newsletter-sidebar1"></td>
</tr>
</table>
<table id="newsletter-sheet" cellpadding="0" cellspacing="0">
<tr>
<td id="newsletter-post">
<div class="edito-sheet">
<h1>Edito</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean pharetra ultrices eleifend. Suspendisse non odio justo, at elementum lorem.
Etiam eu tellus et leo varius mollis. In diam sem, placerat in molestie id, laoreet id ante.
Sed pretium tempus purus ut euismod. Aliquam in libero nulla, ut viverra tellus.
</p>
</div>
<div class="articles">
<p>
<div class="article">Contenu 1...</div>
<div class="article">Contenu 2...</div>
</p>
</div>
</td>
<td id="newsletter-sidebar1"></td>
</tr>
</table>
<table id="newsletter-sheet" cellpadding="0" cellspacing="0">
<tr>
<td id="newsletter-post">
<div class="edito-sheet">
<h1>Edito</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean pharetra ultrices eleifend. Suspendisse non odio justo, at elementum lorem.
Etiam eu tellus et leo varius mollis. In diam sem, placerat in molestie id, laoreet id ante.
Sed pretium tempus purus ut euismod. Aliquam in libero nulla, ut viverra tellus.
</p>
</div>
<div class="articles">
<p>
<div class="article">Contenu 1...</div>
<div class="article">Contenu 2...</div>
</p>
</div>
</td>
<td id="newsletter-sidebar1"></td>
</tr>
</table>
Le gabarit d'une lettre d'information et son modèle peuvent être utilisés aussi bien pour une lettre d'information manuelle que pour une lettre d'information automatique. Dans le cas d'une lettre d'information manuelle, les attributs spécifiques seront ignorés.