Envoyer une newsletter Spip avec WANewsletter


Adaptation de WAnewsletter permettant l’envoi manuel de pages générées par Spip.

Principe général

Les modifications au script WAnewsletter proposées ici ajoutent un bouton « Charger à partir du site » dans le formulaire de création de Newsletter. (« Envoi » dans le menu de WAnewsletter). Ce bouton charge le contenu des versions HTML et texte de la newsletter à partir de leurs pages respectives dans le site.

Ce système gère donc une liste d’abonnés totalement indépendante des auteurs inscrits sur votre site.

Tel que présenté ici, le système ne permet de définir qu’une seule newsletter (en deux formats) qui pourra être générée par Spip. Les webmestres débrouillards pourraient, par exemple, développer des systèmes plus complexes incluant un menu déroulant contenant des appels à des pages différentes.

C’est quoi WAnewsletter ?

WAnewsletter est un excellent script de gestion de listes d’abonnés et d’envoi de newsletter. Il est gratuit (licence GPL) et très poussé. Il contient même des fichiers de traductions faciles à modifier, rappelant ceux de Spip, incluant une interface française.

Par contre, WANewsletter s’adresse principalement aux sites de petite et moyenne envergure car il n’est pas adapté aux listes contenant plusieurs centaines d’abonnés.

Site officiel de WAnewsletter :
http://www.phpcodeur.net/wascripts/wanewsletter/

Installation et support de WAnewsletter

Vous pouvez télécharger le script ici.

Pour l’installation de base du script, suivez les instructions dans le fichier /docs/readme_fr.html fourni avec les fichiers WAnewsletter.

Quelques truc importants :

  • Le formulaire par défaut est le formulaire « subscribe.php ».
  • Pour créer un formulaire personnalisé, utilisez le créateur de formulaire de la section « outils » disponible dans la zone d’administration de votre script.

Vous pouvez utiliser la FAQ ou le forum de WAnewsletter si vous avez des questions sur l’installation du script ou sur son utilisation qui vont au-delà delà des modifications suggérées ici.

Modifications de WAnewsletter

Pour adapter WAnewsletter afin que ce script utilise des squelettes Spip, vous devez suivre les instructions ci-dessous en ajoutant ou remplaçant les morceaux de codes fournis dans les fichiers indiqués. (NOTE : Les modifications suivantes ont été faites à partir de la version 2.2.5 du script WAnewsletter.)

Fichier : templates/admin/send_body.tpl

AVANT LA LIGNE :

<!-- BEGIN formulaire -->

AJOUTER :

<!-- HACK SPIP - Load newsletter from website -->
<div align="center">
<input type="button" name="Button" value="Charger &agrave; partir du site" onclick="document.location='envoi.php?mode=spip'" />	
<div class="explain"><font size="2">Aller directement &agrave; la version <a href="/newsletter-html.php3" target="_blank">HTML</a> ou <a href="/newsletter-txt.php3" target="_blank">Texte</a> sur
le site.</font></div></div>
<!-- Fin HACK SPIP -->

Ceci ajoute le bouton « Charger à partir du site » et des liens directs vers les pages contenants les différentes versions de la newsletter.

Vous pouvez remplacer a href="/newsletter-html.php3" et a href="/newsletter-txt.php3" par l’adresse de vos pages contenants les versions HTML et texte de votre newsletter si elles sont différentes des squelettes fournis avec cet article. N’oubliez pas qu’une adresse commençant par « / » ramène à la racine du site !

Fichier : admin/envoi.php

APRÈS LES LIGNES :

$logdata = array();
$logdata['log_id']        = ( !empty($_REQUEST['id']) ) ? intval($_REQUEST['id']) : 0;
$logdata['log_subject']   = ( !empty($_POST['subject']) ) ? trim($_POST['subject']) : '';
$logdata['log_body_text'] = ( !empty($_POST['body_text']) ) ? trim($_POST['body_text']) : '';
$logdata['log_body_html'] = ( !empty($_POST['body_html']) ) ? trim($_POST['body_html']) : '';
$logdata['log_status']    = ( !empty($_POST['log_status']) ) ? STATUS_HANDLE : STATUS_WRITING;

AJOUTER :

//HACK SPIP
$mode = ( !empty($_REQUEST['mode']) ) ? $_REQUEST['mode'] : '';
if ($mode == "spip") {
$logdata['log_subject']   = $logdata['log_subject']   = $listdata['liste_name'];
$logdata['log_body_text'] = html_entity_decode(file_get_contents("http://www.votre_site.com/newsletter-txt.php3") ) ;
$logdata['log_body_html'] = file_get_contents("http://www.votre_site.com/newsletter-html.php3");
}
//Fin HACK SPIP

Ces lignes insèrent le code source des pages Spip contenant les différentes version de la newsletter lorsque « ?mode=spip » est inclus à la fin du URL de la page d’envoi. (C’est ce que fait le bouton « Charger à partir du site ».)

IMPORTANT : Vous devez remplacez « www.votre_site.com » par l’adresse de votre site. Vous devez aussi remplacer « newsletter-txt.php3 » et que « newsletter-html.php3 » par les pages contenant les newsletters en format texte ou HTML si vous n’utilisez pas les squelettes du même nom fournis dans cet article.

Squelettes de la newsletter

Je fournis ici deux squelettes qui affichent les articles et les sites parus durant les 15 derniers jours. Les articles sont classés par rubriques selon un ordre pas très clair. :P

Squelettes de base de la newsletter v.07
6 juillet 2005

Vous devez placer les fichiers newsletter-txt.php3 et newsletter-html.php3 dans la racine de votre site et à placer newsletter-txt.html et newsletter-txt.html là où se trouvent les autres squelettes de votre site (typiquement à la racine aussi).

IMPORTANT :

  • Si vous désirez voir la version texte de votre newsletter par votre navigateur, c’est bien la source de la page qu’il faut regarder, sinon les retours de ligne « texte » ne seront pas pris en charge.
  • [SPIP 1.7] Si lorsque vous regardez la source de la version texte de votre newsletter vous vous appercevez que les appostrophes ne sonr pas interprétées de la bonne façon, vous devrez alors installer le filtre apostrophe dans votre fichier mes_fonctions.php3.
  • Si vous créez vos propres squelettes, il est absolument nécessaire que vous y ajoutiez le code
    {LINKS}

    là où vous voulez que le lien de désabonnement apparaisse. WAnewsletter bloque l’envoi de toute newsletter qui ne contient pas ce code.

Suggestions

  • Libre à vous de créer vos propres squelettes de newsletter (je vous le recommande). En général, on y met un lien et un résumé des articles parus durant les derniers 7, 15 ou 30 jours, selon la fréquence de vos envois.
  • Vous pouvez aussi, en théorie, utiliser n’importe quelle page web comme source de votre newsletter, comme le fichier sommaire.php3 par exemple. Il est possible, par contre, que vous ayez des difficultés avec les pages qui utilisent le javascript et le css, car les logiciels de courriel ne sont pas toujours très sophistiqués.

Procédures d’envoi de la newsletter

1) Accéder à la zone d’administration de la newsletter (typiquement /newsletter/admin).

2) Choisir l’option « envoi » dans la barre de navigation du haut.

3) Bien s’assurer que la bonne liste d’abonnés a été choisie par le menu déroulant au bas complètement de la page.

Note : Pour tester l’envoi de la newsletter, vous pouvez créer une autre liste d’envoi qui ne contiendrait que les adresses des administrateurs du site.

4) Cliquez sur le bouton « Charger à partir du site ».
Ce bouton remplira les champs « Newsletter au format texte » et « Newsletter au format HTML » avec les codes sources des pages de la newsletter Spip.

5) Vous pouvez avoir une idée de ce que chacune des versions de la newsletter aura l’air en cliquant sur les boutons « prévisualiser ».

6) Si vous êtes satisfait par les newsletters, cliquez sur le bouton « Envoyer » en bas de page.

ATTENTION ! La newsletter n’a pas encore été envoyée ! N’oubliez pas de cliquer sur le lien « ici » dans le message qui apparaîtra pour confirmer l’envoi de la newsletter.

7) Et voilà ! Durant les minutes qui suivent, les messages seront envoyés à tous les abonnés de la liste que vous aviez sélectionnés.

ATTENTION ! Si vous aviez fait un test d’envoi en utilisant la liste de tests, n’oubliez pas de faire un autre envoi en utilisant la liste « Normale ».

Notes

  • Il n’est pas nécessaire de cliquer sur le bouton « Placer le lien de désinscription » car ces liens sont déjà inclus dans les newsletters produites par le site. (c’est la balise lien que vous remarquerez dans le texte de la newsletter. Celui-ci qui sera remplacée par un lien direct de désabonnement.
  • Rien ne vous empêche de modifier le contenu des newsletters à l’intérieur des champs avant de les envoyer. Soyez averti que cela peut provoquer des erreurs dans la version HTML si ce n’est pas fait avec délicatesse.
  • Assurez-vous que votre webmestre se tient au courant des mises à jour du script WANewsletter, particulièrement celles qui concernent des corrections de failles de sécurité. Le site officiel de WANNewsletter se trouve à :
    http://www.phpcodeur.net/wascripts/wanewsletter/
  • Dans l’éventualité d’une mise à jour du système, il faut absolument tenir compte des changements apportés au script afin de le rendre compatible avec SPIP tels que décrits dans cette contrib.

FAQ

Que faire pour qu’un article ne s’affiche pas dans la newsletter ?

Vous pouvez changer la date de publication pour qu’elle soit plus vieille que le nombre de jours spécifiés dans le squelette (15 jours par défaut) ou vous pouvez associer le mot-clef « invisible » à l’article en question.

Que faire pour qu’un article apparaisse dans la newsletter ?

Vous n’avez qu’à changer sa date de publication pour qu’elle soit à l’intérieur du nombre de jours spécifiés dans le squelette (15 jours par défaut).

Comment faire afficher le formulaire d’inscription et ses messages de confirmations dans d’autres langues ?

Comme suggéré dans la FAQ, pour spécifier la langue du formulaire, il vous suffit d’ajouter $language = 'francais'; dans le code d’inclusion de newsletter.php qui est fourni par le générateur de formulaire (avant include()) Ce seront les fichiers de traduction du dossier /language/ qui seront utilisés.

On peut aussi indiquer la langue dans le url qui mène au formulaire. Par exemple : http://votresite.com/newsletter/subscribe.php?language=english.

Discussion

34 discussions

  • 2

    Les liens vers les squelettes ne fonctionnent plus.
    Serait il possible de les réparer ou de fournir un miroir ?
    Merci !

    • Ça marche bien d’ici. Est-ce que ça s’est règlé de votre côté ? Si le problème persiste, quel est le message d’erreur exactement ?

    • Bonjour,

      je n’ai pas trouver le lien pour créer un nouveau post je réponds donc à un précédent message.

      j’ai installé le script sur mon site mais parès avoir fait toutes les modifications inscrite dans l’article et lorsque je veux générer autmatiquement les newsletter en txt et html mon navigateur m’affiche :

      Fatal error : Call to undefined function : file_get_contents() in /home/sites/site60/web/newsletter/admin/envoi.php on line 50

    Répondre à ce message

  • 4

    Désolé ! J’avais laissé par erreur un filtre spécifique à mon site. Vous n’avez simplement qu’à retirer toute mention du filtre « ajuste_typo » et tout devrait aller.

    J’ai aussi remarqué que la boucle derniers sites de la newsletter texte manquait le filtre « textebrut ». J’ai retiré le filtre « appostrophe » des boucles de la version texte car il n’est plus nécessaire avec les dernières version de Spip (1-7-1 et plus, je crois.)

    • Redaweb

      Félicitation tout d’abord pour cet article car je cherchais depuis longtemps un système de newsletter pratique et cerise sur le gâteaux je le trouve avec paramétrage SPIP. cependant j’ai qlq petits soucis.

      Je possède une version anterieur 1.5.2 et j’aurais aimé obtenir la version avec filtre apostrophe car j’ai un message d’erreur sur la partie txt.

      Egalement, malgré après avoir supprimé « ajuste_typo » de la newsletter-html je n’arrive pas à la faire fonctionner normalement (aucun article).

      Merci pour votre aide

    • Désolé, plus de problème avec la newsletter txt mais g toujours un problème avec la newsletter html : Rien ne s’affiche à part le premier titre (aucun article publié sous 7 jours)

    • Bonjour !

      1) Pour utiliser le filtre apostrophe, il faut l’installer dans mes_fonctions.php3 (voir la contrib de ce filtre) et placer le filtre dans chacune des balises affichat du texte dans le squelette. (ex. [(#TITRE|texte_script|apostrophe)]

      2) Est-ce que vous avez des articles publiés durant les 7 derniers jours (ou durant la période couverte par la newsletter) ? Si il n’y en a pas, ça expliquerait leur absence.

      3) Vous mentionnez un message d’erreur. Quel est-il ?

    • redaweb

      Bonjour,

      Oui j’ai 3 articles sous 7 jours qui figurent bien sur la version texte.
      le message d’erreur était pour la version txt, il s’agissait de l’apostrophe

      C’est pour la version HTML, je n’ai tout simplement aucun message

      Version txt :
      http://www.itmaroc.com/newsletter-txt.php3
      Version html :
      http://www.itmaroc.com/newsletter-html.php3

      A noter que j’utilise la version 1.5.3 de Spip

      Merci pour votre aide, j’aimerai vraiment utiliser ce super script qui me ferait gagner un temps fou !!!

      Viva Spip ! :-)

    Répondre à ce message

  • Pour les intéressés, j’ai publié une nouvelle version de ce script intitulée « Envoyer des newsletters avec WANewsletter en choisissant la langue et la période couverte. ».

    Elle est présentement en évaluation (vous devez vous inscrire à Spip-contrib pour y accéder). Les testeurs sont les bienvenus !

    Cette version est plus avancée que la précédente et je la recommande à ceux qui ont une version 7.2 de Spip.

    Répondre à ce message

  • 1

    Félicitations pour cette article. Je pense qu’il devrait pas mal aider les utilisateurs de spip et wanewsletter.

    Il est difficile pour moi de leur répondre, n’ayant aucune connaissance de Spip. Un lien vers votre article sera en bonne place sur le forum de wanewsletter :).

    Bobe, Auteur de WAnewsletter.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom