SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Interactivité, communication > Mails > WANewsletter pour SPIP

Squelette SPIP du formulaire d’inscription à Wanewsletter

mardi 19 juillet 2005, par ensemblevide. Dernier ajout dimanche 21 janvier 2007


Ce formulaire permettra à un visiteur d’un site SPIP multilangues de s’inscrire à une newsletter en fonction de sa langue. Il est destiné à s’intégrer au module de newsletter Wanewsletter


Petite introduction reprise de l’article de Thierry Gagnon "Envoyer des newsletters avec WANewsletter en choisissant la langue et la période couverte" http://www.spip-contrib.net/ecrire/articles.php3?id_article=528

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.

Il faut noter que les modifications proposées ici n’utilisent pas le système d’interface multilingue de WANewsletter.

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

Installation et support de WAnewsletter Vous pouvez télécharger la dernière version du script à cette adresse : http://www.phpcodeur.net/wascripts/wanewsletter/telecharger.

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

Quelques trucs importants :

Il peut être une bonne pratique de créer une liste d’abonnement différente pour chacune des langues de votre site. Le formulaire d’abonnement et de désabonnement par défaut de WANewsletter se trouve dans le fichier "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 WANewsletter. Vous devrez alors ajuster ce formulaire en utilisant les outils de multilinguisme de votre site. Support : 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 proposées ici.

Explication de ce formulaire

Le formulaire a été testé avec SPIP 1.7.2 et Wanewsletter 2.2.4

Le principe est d’afficher le formulaire dans la langue choisie (ici en français et anglais) et d’inscrire l’abonné dans la liste adéquate. Ainsi il est nécessaire de créer 2 listes dans l’admin de Wanewsletter. Une pour les abonnés anglophones et l’autre pour les abonnés francophones.

Wanewsletter dispose d’un formulaire par défaut qui se trouve à la racine (ici nous considérons que Wanewsletter est installé dans le répertoire "newsletter"). Il s’appelle subscribe.php

Ici nous allons créer un formulaire personnalisé appelé inscription_newsletter.html (dispo en pièces jointes). Cette page est en fait un squelette SPIP dans laquelle vous retrouverez quelques vocabulaires propres à SPIP. Cette page est couplée avec inscription_newsletter.php3.

Dans la page inscription_newsletter.html il faut commencer par mettre :

<html lang=#LANG>

Il faut ensuite insérer le formulaire tel qu’il sera édité dans l’admin de Wanewsletter page "Outils" menu "Générateur de formulaire d’inscription" Dans le cas de la page inscription_newsletter.html le formulaire a été édité sachant que cette page se trouve à la racine du site. Et que Wanewsletter se trouve dans le répertoire newsletter. Donc racinedusite/newsletter.

Le formulaire qui ressemble à :

se compose ainsi :

Petites remarques ici : Il faut passer la variable lang dans l’url auquelle le form fait appel dans action : <form method="post" action="">

"http://monsite.com/inscription_newsletter.php3?lang=#LANG"

Car en appuyant sur le bouton Valider le formulaire appelle de nouveau la même page et affichera les textes de résultat : "inscription réussie", "échec"... Donc le faite de passer la langue permettra d’avoir ces textes dans la langue du visiteur.

Maintenant ajouter avant : <input type="hidden" name="liste" value="3" /> (ici la valeur correspond à l’id de liste d’abonnés créés dans l’admin de Wanewsletter) le script php suivant :

Ce script définit la liste choisie en fonction de la langue et définit la variable $language pour avoir les textes de Wanewsletter dans une langue ou dans une autre.

On va retoucher :

<input type="hidden" name="liste" value="3" /> afin que le numéro de la liste soit défini en fonction de la langue du formulaire. Ainsi cette ligne devient :

Où $valeurliste est soit 2 ou 3 (mais ça peut être d’autres numéros) $language sert à indiquer à Wanewsletter dans quelle langue vont être tous les textes (ceux envoyés par mails, ceux qui confirme que l’inscription s’est bien déroulée...)

Enfin il convient d’ajouter vers le bas de la page un script propre à Wanewsletter :

Ici $waroot est newsletter car le fichier newsletter.php qui se trouve dans ce répertoire est appelé par inscription_newsletter.html qui est à la racine du site. Si vous changez l’endroit où se trouve les fichiers pensez à modifier $waroot ici.

Quelques dernières mises au point

Il faudra penser à définir dans le fichier inscription_newsletter.html vos chaînes (blocs de textes)ou conserver celles qui sont présentes dans ce fichier. Il faudra ensuite mettre ces chaînes dans vos fichiers de langues. Je vous renvoie à cet article pour en savoir plus : http://www.spip.net/fr_article2128.html

Ensuite il est nécessaire de retourner dans l’admin de Wanewsletter dans "Liste". Pour chaque liste créée je vous invite à corriger les URL absolu de la page où se trouve le formulaire pour y ajouter la variable lang. Ainsi pour la liste FRANCAIS l’url ressemblera à : http://www.monsite.com/inscription_newsletter.php3?lang=fr

De même pour la liste ANGLAIS : http://www.monsite.com/inscription_newsletter.php3?lang=en

Cela permettra aux abonnés quand il recevront les newsletter de cliquer en bas sur le lien de désabonnement s’ils le souhaitent et de retrouver la page du formulaire dans leur langue.

Enfin il suffira d’appeler la page inscription_newsletter.php3 depuis n’importe quelle page de votre site par l’url suivante :

<a href="inscription_newsletter.php3?lang=#LANG" class='liens'>Inscrivez vous à la newsletter</a>


Répondre à cet article

  • J’ai migré mon site de SPIP 1.8.4 en 1.9.1 ; depuis, le formulaire d’inscription à WAnewsletter ne fonctionne plus :
    - en tentant une inscription, j’ai une page blanche avec un simple texte "Rien à faire ici" (au format texte brut).
    - en tentant une désinscription, c’est une page d’erreur ayant une mise en forme et disant "Erreur... Fichier action/desinscription introuvable".

    Je dois avouer que je suis sec...
    Quelqu’un saurait-il m’aider ?
    Merci d’avance.

    Mitch

    Répondre à ce message

    • hello,

      - Je comptais installer le script Wanewsletter sur mon site spip 1.92, mais en lisant ce forum, j’hésite. Ne suis pas un as... de l’informatique. Vais essayer... Si ça marche, c’est qu’il faut réinstaller Wanewsletter en cas de migration, etc...

      - Je me demandais si certains fichiers du script ne font pas double emploi avec des fichiers du module Spip... (risque d’effacement de fichiers..) Certains répertoires portent le même nom... (tmp).. Mais non... Pas de fichiers index dans le répertoire tmp du module Spip par exemple... Le répertoire image ne porte pas le même étiquette dans le module spip et dans le script Wanewsletter...

      A toute,

      Répondre à ce message

      • Hello,

        Inutile. Ne réussis même pas à uploader tous les fichiers sur le serveur de mon site... config.inc.php du répertoire includes... jugé trop volumineux... ! Ce qui est bizarre c’est que ce fichier fait 0 k !

        Dommage, une newsletter m’est nécessaire. Suis étonné qu’il n’existe pas une formule spip ad hoc..

        À +

        Répondre à ce message

        • trouvé sur le net : e ne sais pas vraimetn te dire ; je crois qu’il y a un champ Wanewsletter qui porte le même nom qu’un champ que Spip utilise et qu’il interdit sur tous les formulaires qu’il ne génère pas lui-même.

          Bref, voici comment mon stagiaire (qui vient de finir son stage) a résolu le problème. Pour mes prochains sites spipés, j’utiliserai SpipListes mais je ne suis pas certain qu’il gère bien les retours d’erreur (e-mails inscrits qui n’existent plus, boîtes pleines même après 3 envois etc.)

          A noter : avec cette technique, je n’affiche pas le message de Wanewsletter dans la page depuis laquelle on s’ets inscrit. C’est dommage mais à cause de l’URL-rewriting je ne peux pas faire autrement.

          Concrètement : l’internaute va entrer son adresse e-mail dans ton formulaire et cliquer OK. Les données (son adresse e-mail, le format choisi et l’identifiant de la liste) seront alors envoyés à une deuxième page que l’internaute n’aura pas le temps de voir car elle enregistrera les données dans la base Wanewsletter en une fraction de seconde avant de rediriger vers la page de confirmation en envoyant à celle-ci le message de Wanewsletter.

          1) ton squelette Spip comprenant le formulaire d’inscription ne doit plus comprendre de PHP du tout ! Tu dois en supprimer le code qui ressemble à ça : <?php
          define
          ('IN_SUBSCRIBE'true);
          $waroot '../wanewsletter/';
          include(
          $waroot 'newsletter.php');
          ?>

          2) ce même formulaire d’inscription doit dorénavant envoyer sur une page qui n’est en aucun cas construite par Spip. Dans mon cas :

          J’ai donc créé une page appelée inscription-newsletter.php que j’ai placée à la racine de mon répertoire contenant mon site Spip. (si tu n’as pas placé Spip dans un répertoire de ton site, cette nouvelle page doit donc elle aussi être à la racine de ton hébergement)

          3) avec les deux étapes précédentes, le formulaire est prêt. Occupons-nous de cette deuxième page : inscription-newsletter.php C’est l’adresse absolue de cette page que tu dois donner à Wanewsletter dans la configuration des listes comme étant l’adresse du formulaire d’inscription. Cette page inscription-newsletter.php contient en tout et pour tout le code suivant : <?php
          define
          ('IN_SUBSCRIBE'true);
          $waroot '../wanewsletter/';
          include(
          $waroot 'newsletter.php');
          header('location: 
          /actu/spip.php?page=inscription-newsletter&message='
          .urlencode($message));
          ?>
          Tu dois adapter les deux données suivantes :
          - ../wanewsletter/ : cela dépend de l’emplacement de wanewsletter par rapport à la page inscription-newsletter.php
          - /actu/spip.php?page=inscription-newsletter : tu peux nommer ton squelette différemment : il s’agit là de la 3ème page qui intervient ici, celle sur laquelle l’internaute verra le message de Wanewsletter lui confirmant par exemple son inscription. Mais attention : il faut bien laisser &message= à la fin de cette adresse pour que le message de Wanewsletter arrive à destination. L’internaute ne verra même pas cette page inscription-newsletter.php ; il aura l’impression d’être passé directement de ton formulaire d’inscription à la page spip.php?page=inscription-newsletter.

          4) voici maintenant la 3ème page qui intervient dans cette histoire : spip.php?page=inscription-newsletter. Cette page peut être en tout point identique au reste du site. Elle doit au moins contenir : <?php
          if (isset($_GET['message']))
              echo 
          utf8_encode($_GET['message']);
          ?>
          C’est ce qui affiche le message de Wanewsletter. Tu peux donc placer cela dans un bloc de ton choix pour la mise en forme.

          Je n’ai peut-être pas été clair. N’hésite pas à répondre en mettant ma propre adresse en copie pour que je sois au courant de ton message.

          olivier

          Répondre à ce message

    Retour au début des forums

  • Squelette SPIP du formulaire d’inscription à Wanewsletter

    11 octobre 2006 19:20, par dictionaric

    Bonjour ! Je suis nase en informatique. Comment récupère-t-on les emails récoltés avec ce script ? MERCI ! dictionaric.com

    Adresse email :   Format :
    Inscription
    Changer de format
    Désinscription

    Voir en ligne : Dictionaric

    Répondre à ce message

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et fonctionnement SPIP-Contrib | SPIP | L'autre.net