Clever Age - Conseil en architecture technique


nov 06 15

plugin clevermail pour spip, pour une gestion simple de lettres d’informations

Développé et testé sur SPIP > 1.9.2

Clever Age vient de reverser son premier plugin pour SPIP 1.9.2. Ce plugin est basé sur CleverMail, un gestionnaire de lettres d’information qui avait déjà été intégré dans SPIP-Agora.

Il existe 2 autres plugins permettant la gestion des lettres d’informations sous SPIP :

  • SPIP-Listes qui utilise les auteurs (au sens SPIP) pour gérer les abonnés, contrairement à CleverMail qui utilise une table séparée.
  • SPIP-Lettres que je n’ai pas eu l’occasion de tester sur les dernières versions SVN de SPIP

Fonctionnalités

  • Utilisation de n’importe quelle adresse web — donc notamment des pages créées avec des squelettes SPIP — pour générer le contenu des messages des lettres d’informations
  • Support des formats HTML et texte, avec liberté pour l’utilisateur de choisir son format de prédilection
  • Personnalisation complète en front-office (notifications et formulaires)
  • Multilinguisme de l’interface
  • Import des abonnés depuis un fichier CSV
  • Prévisualisation des lettres avant l’envoi
  • Choix du mode de modération des inscriptions

A chaque lettre d’information sont liés des abonnés et des adresses de contenus.

Intégration du plugin dans le front office

Pour afficher le formulaire d’inscription dans un squelette, il suffit d’ajouter la balise suivante :

#FORMULAIRE_CLEVERMAIL

S’il existe plusieurs lettres, une liste déroulante à choix unique sera affichée.

Pour n’afficher le formulaire que pour une lettre spécifique (pour la lettre n°1), il suffit d’ajouter un critère :

#FORMULAIRE_CLEVERMAIL{lettre1}

Personnalisation du plugin

Afin de personnaliser au maximum l’intégration de ce plugin dans votre site, il est possible de surcharger les chaînes de langues utilisées sur le front-office (messages de confirmation, d’erreurs...).

Il suffit pour cela de dupliquer le fichier /plugins/clevermail/lang/clevermail_fr.php dans votre dossier de squelettes, par exemple /squelettes/lang/clevermail_fr.php et d’éditer les chaînes désirées (en faisant bien attention à la syntaxe).

De la même façon, il est aussi possible de surcharger les formulaires par défaut en dupliquant les fichiers /plugins/clevermail/formulaires/formulaire_clevermail.html et /plugins/clevermail/formulaires/formulaire_clevermail_simple.html dans votre dossier squelettes une fois de plus, par exemple /squelettes/formulaires/formulaire_clevermail.html.

Vous pouvez aussi changer l’interface de la page de confirmation d’inscription (dans le cas d’une modération des inscriptions) en surchargeant le squelette /plugins/clevermail/clevermail_do.html dans votre dossier squelettes une fois encore, par exemple /squelettes/clevermail_do.html ainsi que la page de confirmation de désinscription /plugins/clevermail/clevermail_rm.html avec /squelettes/clevermail_rm.html.
En faisant bien attention à chaque fois de réutiliser les balises adéquates #CLEVERMAIL_VALIDATION et #CLEVERMAIL_UNSUBSCRIBE.

Envoyer des lettres d’informations

En attendant que le plugin soit à 100% "SPIP-ifié" (utilisation de SPIP_CRON), après avoir choisi d'envoyer un message, il faut cliquer sur le lien pour forcer l'envoi aux abonnés (par paquet de 50 par défaut, mais modifiable dans "Paramètres") et répéter l'opération tant qu'il reste des abonnés en attentes.

Edit du 12/01/07 : Le plugin utilise désormais SPIP CRON donc les envois se feront au fils des visites de votre site (vous pouvez forcer la périodicité des envois en ajoutant #SPIP_CRON dans un de vos squelettes).

Ou alors il faut programmer une tache CRON qui appellera http://URL_DU_SITE/ecrire/?exec=clevermail_queue_process à un intervalle régulier.

Télécharger le plugin

Le plugin est disponible sur le SVN de SPIP-Zone à cette adresse : svn://zone.spip.org/spip-zone/_plugins_/_stable_/clevermail/

Vous pouvez aussi télécharger la version snapshot.

Auteur : Thomas Beaumanoir
Commentaires : Laisser un commentaire
35 commentaires
  • 15 novembre 2006
    Yo !
    C’est quoi l’intérêt d’avoir 3 plugins quasi identiques ???? pourquoi ne pas contribuer sur d’autres points plutôt que de rajouter des choses déjà existantes qui ne demandent qu’à évoluer ??

  • 15 novembre 2006
    ventrea
    La publication me parait un brin rapide surtout le Il faut cliquer sur le lien pour forcer l’envoi aux abonnés est assez rédibitoire avec un nombre important d’abonnés alors qu’un spip cron est vide codé. a+ Arnaud

  • 16 novembre 2006
    Thomas Beaumanoir

    @Yo ! : Car les plugins ne partent pas forcement sur les mêmes bases de fonctionnement. Les abonnés dans certains cas sont des auteurs, les templates ne sont pas forcement liés à une lettre d’information mais à une instance... Autant de choses, qui font, qu’il était plus simple de faire un plugin "from scratch" pour répondre à notre besoin bien spécifique clin d'oeil

    @Arnaud : C’est le risque quand on utilise un plugin qui n’est pas encore au statut stable... Quoi qu’il en soit l’interface restant assez conviviale, je doute que cela soit si rédhibitoire que ça. Mais de toute façon le spip cron viendra, patience sourire


  • 16 novembre 2006
    Ben.
    Bonjour, ce billet possède le tag "logiciel libre", mais je ne vois pas de licence pour le plugin sur la zone , j’ai mal cherché ?

  • 17 novembre 2006
    Thomas Beaumanoir
    @Ben. : C’est désormais chose faite et puisque l’on parlait tout de même de SPIP dans ce billet, le tag avait lieu d’être clin d'oeil

  • 25 novembre 2006
    Blaise
    Et pourquoi pas simplement un SMTP ? comme sur la dernière version de SPIP-LISTE ? Merci dans tous les cas de jouer le jeu et de reverser votre développement suite à votre retour vers SPIP clin d'oeil

  • 25 novembre 2006
    Nicolas Hoizey
    Comment ça, un SMTP ?

  • 4 décembre 2006
    Marc Cervennansky

    Bonjour.

    Je tente d’utiliser le plugin dans un site réalisé sous Spip 1.9.1 lorsque je valide la création d’une nouvelle lettre d’information avec Clevermail j’ai une page blanche qui s’affiche... Une idée de la cause de ce disfonctionnement ?


  • 4 décembre 2006
    Thomas Beaumanoir
    @Marc : Bonjour, le plugin a été développé pour la version 1.9.2 (svn) donc il est tout à fait possible qu’il ne fonctionne pas avec la version 1.9.1 (stable)...

  • 12 mars 2007
    Arnaud

    Script presque parfait. Ses atouts : fonctionne parfaitement, facilement adaptable, options très souples (modeles html et txt séparés, ...)

    Il ne lui manque qu’un réglage de la périodicité d’envoi pour ceux qui, comme moi, ne savent pas programmer des tâches CRON.

    Des pistes ?

    Cordialement.


  • 12 mars 2007
    Thomas Beaumanoir
    La périodicité dépend uniquement du traffic du site, l’envoi via SPIP CRON s’effectue en tache de fond, en temps utile. Si la balise #SPIP_CRON est utilisée dans un squelette, les taches de fond devraient théoriquement s’effectuer plus régulièrement... mais une fois de plus tout dépend du traffic clin d'oeil

  • 12 mars 2007
    Arnaud

    Merci de cette réponse rapide. Je pense m’être mal exprimé : comment faire pour régler la périodicité de l’envoi de la lettre ? Tous les 10 jours par exemple. L’utilisation de squelettes permet bien de s’affranchir de la tâche de création du message, mais CleverMail offre-t-il la possibilité d’« oublier » la lettre de nouveautés ?

    • Cette fonctionnalité existe-t-elle ?
    • Faut-il programmer le squelette en conséquence ? (Et si oui, comment ...)

  • 12 mars 2007
    Thomas Beaumanoir
    Malheureusement il n’est pas possible de programmer un envoi automatique à échéance réguliere d’une lettre d’information... il me semble en revanche que Spip-Listes le gère

  • 15 mars 2007
    Nicolas Hoizey
    S’il s’agit uniquement de faire un envoi automatique tous les n jours, les alertes éditoriales natives de SPIP, envoyées dans une mailing-list, font parfaitement l’affaire.

  • 26 mars 2007
    Pierre
    Merci pour ce plugin qui fonctionne très bien. Avez-vous des modèles (squelettes) de lettre au format texte et html sur lesquels on pourrait s’inspirer ?

  • 10 novembre 2007
    Alex

    Bonjour,

    j’ai 2 erreurs : lorsque je veux regarder la newsletter au format HTML que je viens d’envoyer j’ai : Message from list "" sent to xxxx@yyyyy.com in text format

    Fatal error : Call to undefined function : cron_clevermail_cron() in /home.50/t/o/u/xxxxx/www/natixis/ecrire/inc/cron.php on line 114

    et lorsque je veux forcer l’envoi j’ai : Fatal error : Call to undefined function : cron_clevermail_cron() in /home.50/t/o/u/xxxxx/www/natixis/plugins/clevermail_1_9_2/exec/clevermail_queue_process.php on line 14

    que se passe-t-il ?

    a++

    Alex


  • 21 novembre 2007
    Thomas Beaumanoir
    @Alex : c’est corrigé dans la version 1.0.3, merci du retour.

  • 29 novembre 2007
    Pierre

    Bonjour,

    l’installation de la 1.O.3 corrige bien le bug signalé par Alex, mais le message d’erreur apparait dans le corps du message envoyé (au format html)

    Fatal error : Call to undefined function cron_clevermail_cron() in /var/www/sich/cephas/web-paroisse.com/ecrire/inc/cron.php on line 114

    Une piste ? Bien cordialement Pierre


  • 29 novembre 2007
    Thomas Beaumanoir

    @Pierre : je ne reproduis pas cette erreur avec une installation vierge de SPIP 1.9.2c et la version 1.0.3 du plugin...

    Il me semble d’ailleurs que la fonction "cron_clevermail_cron()" n’est plus utilisée dans le plugin donc vérifie bien que tu possèdes les derniers fichiers.


  • 30 novembre 2007
    Pierre
    Bonjour, effectivement mauvaise gestion des transferts des fichiers une désinstallation et un bon nettoyage permettent de confirmer le bon fonctionnement. Merci

  • 8 janvier 2008
    Bozec Matthieu

    Bonjour,

    Félicitation pour le travail accompli, le plugin est vraiment bon et simple à utiliser.

    Néanmoins j’ai un petit souci, je ne sais comment ajouter un lien de désinscription dans la newsletter.

    Je n’arrive pas à trouver la balise adéquate. Je suis preneur si quelqu’un à une idée.


  • 8 janvier 2008
    Thomas Beaumanoir
    @Matthieu : il s’agit du tag #CLEVERMAIL_UNSUBSCRIBE

  • 30 janvier 2008
    Antoine
    J’ai installé avec succès ce gestionnaire de lettres d’information cependant je n’arrive pas à utiliser des pages créées avec des squelettes SPIP pour générer le contenu des messages des lettres d’informations. En fait, je souhaiterais créer ces lettres d’informations en publiant des articles dans une rubrique spécifique (id=11). J’ai mon squelette "rubrique=11.html" qui fonctionne bien en affichant uniquement l’article le plus récent publié dans cette rubrique, mais dans l’admin. de CleverMail cela ne fonctionne pas. J’ai pourtant donné comme URL des templates générés http://monsite.net/spip.php ?rubrique=11 Un utilisateur de ce plugin peut-il m’indiquer la procédure à suivre pour interfacer correctement l’édition des lettres CleverMail dans Spip.

  • 31 janvier 2008
    ahlan
    Bonjour, J’ai un site bilingue Français, Arabe . Comment je fait pour afficher le formulaire en arabe SVP ? Merci.

  • 6 février 2008
    Thomas Beaumanoir

    @Antoine : Tu peux peut être essayer avec http://monsite.net/spip.php ?page=rubrique&id_rubrique=11

    @ahlan : Il te suffit de créer le fichier de langue clevermail_ar.php dans le répertoire lang/ de ton dossier squelettes en t’inspirant de /clevermail/1_9_2/lang/clevermail_fr.php


  • 7 février 2008
    ahlan

    Merci pour votre réponse Thomas,

    maintenant j’ai un problème d’affichage ; les caractères du formulaire sur la page en arabe s’affichent sous forme de point d’interrogation !!!


  • 8 février 2008
    Thomas Beaumanoir
    @ahlan : il doit s’agir d’un problème d’encodage... vérifies bien l’encodage de ton fichier de langue, de tes squelettes et de ta base

  • 1er mars 2008
    Nat

    Hello

    On télécharge où ce plug in ?

    Merci !


  • 1er mars 2008
    Nat
    bon j’ai trouvé le plugin mais c bien trop compliqué à installer pour des néophytes de mon style. Quand je lis Copy class.phpmailer.php into your php.ini include_path... je sais même pas ce qu’est ou où se trouve ce php.ini... Tant pis smiley :-/

  • 1er mars 2008
    Tristan Rivoallan
    @Nat : http://fr.php.net/manual/fr/ini.core.php#ini.include-path

  • 27 mars 2008
    triton

    Bonjour, et merci pour ce chouette plugin. Une remarque et une question :

    • Mon serveur local n apprecie pas les ouverture de bloc php avec un simple <? parfois utilise dans ce plugin, j ai fait un rechercher remplacer global par la forme entiere <?php et ca marche...
    • Par contre, impossible de faire afficher le formulaire de desabonnement, autant la balise #FORMULAIRE_CLEVERMAIL genere bien le formulaire d inscription, autant #CLEVERMAIL_UNSUBSCRIBE ne me retourne rien comme html (le fichier et cependant bien appele), une idee pour resoudre ca ?

    merci beaucoup pour le travail triton


  • 27 mars 2008
    Thomas Beaumanoir

    @triton : concernant l’utilisation de la syntaxe courte <?, tu peux autoriser son utilisation en modifiant la variable short_open_tag dans le php.ini

    En ce qui concerne la balise #CLEVERMAIL_UNSUBSCRIBE : elle ne retourne quelque chose que quand elle est utilisée dans un squelette auquel on passe en GET les paramètres de désinscription (url générée grâce à @@URL_CONFIRMATION@@)


  • 28 mars 2008
    triton
    Bonjour, et merci pour la reponse. Je comprends le principe, par contre, je ne vois pas comment utiliser @@URL_CONFIRMATION@@ a quel endroit utiliser ce tag ? Je pensai que le mail lettre d information emis comporterait automatiquement un lien parametré permettant de renseigner le formulaire genere par #CLEVERMAIL_UNSUBSCRIBE, mais ce n est pas le cas... Qu est ce que je rate ? merci triton

  • 22 mai 2008
    triton
    Bonjour, je me replonge dans la newsletter, pour le pb au dessus, en fait c est tout simple, faut juste mettre @@URL_CONFIRMATION@@ dans le squelette (mais ca ne se voit pas en mode previsu d ou mon incomprehension initiale...) Par contre, il semble que certaines messageries exotiques ont du mal a interpreter les mails au format html... Faut il indiquer le type de header au niveau du squelette avec une directive du type : #HTTP_HEADER(Content-Type : text/html ; encoding : iso-8859-1) merci

  • 6 août 2008
    Michel

    Que faut-il écrire dans :

    URL des templates générés Version HTML : Version TXT :

    Lorsque je clique sur nouveau message de ma liste tout juste créer. je ne peux qu’entrer le titre du message et c’est tout ... Pourquoi ?

    Cordialement Michel


Commentaires : Laisser un commentaire