Squelette SPIP du formulaire d’inscription à Wanewsletter

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 :

<form method="post" action="">
Adresse email : <input type="text" name="email" maxlength="100" /> &nbsp; 
Format : <select name="format">
<option value="1">TXT</option>
<option value="2">HTML</option>
</select>
<input type="hidden" name="liste" value="3" />
<br />
<input type="radio" name="action" value="inscription" checked="checked" /> Inscription <br />
<input type="radio" name="action" value="setformat" /> Changer de format <br />
<input type="radio" name="action" value="desinscription" /> Désinscription <br />
<input type="submit" name="wanewsletter" value="Valider" />
</form>

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 :

<?php
	  if ($lang == "fr"){
		$valeurliste = 2;
		$language = 'francais';
	  }
	  if ($lang == "en"){
		$valeurliste = 3;
		$language = 'english';
	  }
	  ?>

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 :

<input type="hidden" name="liste" value="<?php echo $valeurliste; ?>" />

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 :

<?php 
define('IN_WA_FORM', true); 
$waroot = 'newsletter/'; 
include($waroot . 'newsletter.php');
?>

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>

Discussion

Aucune discussion

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