Annonce

#1 2005-12-17 21:02:47

Florence
Membre
Lieu : Paris, France
Inscription : 2005-12-17
Messages : 3
Site Web

Re : Liens de désabonnement différents

Bonjour,

Je suis en train de tester l'utilissation de WANwsletter pour mon site spip, et pour l'instant ça me plait bien, mais il y a quelque chose qui m'échappe : comment envoyer le lien de désinscription sur un formulaire différent selon les cas ?

Le code {LINKS} qu'on insère dans la newsletter renvoie vers le formulaire d'inscription, que l'utilisateur peut remplir en choisissant l'option désabonner. Jusque-là, tout va bien.

Quand on a rempli le formulaire et validé, une nouvelle page s'affiche avec le même formulaire, et un message de confirmation dessous. Là, ça ne me plait pas. Je suis consultante informatique et je connais un peu le comportement de l'utilisateur moyen. Plus de la moitié vont voir le formulaire remis à zéro, ne prendront pas la peine de lire le message qui est apparu dessous et vont m'écrire pour me dire que le formulaire de désabonnement ne marche pas. roll

OK, je crée donc un formulaire resultat.php dans lequel il n'y a plus que le message. Je saisis son URL dans la zone "action" du formulaire d'inscription : quand on appuie sur le bouton de validation, les champs du formulaire disparaissent et le message de confirmation devient bien visible.

Mais voila, comment faire pour obtenir la même chose dans le cas du lien de confirmation de l'e-mail de désabonnement ? J'ai essayé de mettre l'URL de resultat.php dans les règlages de la liste (URL absolu de la page où se trouve le formulaire), et ça marche nickel mais maintenant le lien de désabonnement de la newsletter pointe sur resultat.php aussi, donc sur un formulaire vide !!!

Je voudrais donc que le lien de désabonnement de l'e-mail de confirmation et celui de la newsletter pointent sur deux adresses différentes.

A moins bien sûr qu'il y ait une meilleure façon de régler le problème ...

J'espère que j'ai été assez claire. Merci d'avance pour votre aide

Florence

Hors ligne

#2 2005-12-18 19:49:53

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Liens de désabonnement différents

Bonjour,

Voici une solution simple mais nécessitant une légère modification du fichier includes/class.form.php. Vous trouverez à la ligne 367 le bloc de code suivant:

$mailer->assign_tags(array(
      'LINK' => $this->make_link('desinscription')
));

Ajoutez ceci juste avant:

$this->listdata['form_url'] = 'http://domain.tld/path/to/resultat.php';

PHP et MySQL, un duo gagnant !

Hors ligne

#3 2005-12-18 23:38:39

Florence
Membre
Lieu : Paris, France
Inscription : 2005-12-17
Messages : 3
Site Web

Re : Liens de désabonnement différents

OK, je vais essayer. Et merci pour ce script très utile !

Florence

Hors ligne

#4 2005-12-19 22:41:07

Florence
Membre
Lieu : Paris, France
Inscription : 2005-12-17
Messages : 3
Site Web

Re : Liens de désabonnement différents

Ca marche !!! Mais j'ai dû ajouter votre petit bout de code à deux endroits différents : celui que vous avez indiqué pour changer le lien de confirmation de désinscription, et un autre pour le lien d'annulation de l'inscription (je n'ai pas choisi d'activer la confirmation d'inscription), avant ce bloc (ligne 185 je crois) :

$mailer->assign_tags(array(
     'LINK' => $this->make_link($link_action)
));
        }

J'espère que je n'ai rien cassé, je bricole mais je n'y connais rien en PHP roll

Hors ligne

#5 2006-09-12 17:17:25

padaben
Membre
Lieu : au soleil
Inscription : 2006-09-05
Messages : 31

Re : Liens de désabonnement différents

je voudrais effectuer la meme manip que Florence, mais dans la derniere version de wanewsletter 2.3.1, la ligne 367 ne correspond pas, j'ai bien tenté de chercher l'endroit  modifier avec le code que Bobe a donné  mais....

en fait pour moi le lien de désincription se trouve effectivement à une autre page que le formulaire d'inscription.

merci pour les éventuelles infos...


@+

Padaben


********Création et réalisation de tous vos outils de communication - 100% des besoins quotidiens !! ********

Hors ligne

#6 2006-09-12 18:40:35

Chivita
Membre
Inscription : 2006-08-30
Messages : 18

Re : Liens de désabonnement différents

Tu as essayé ceci : mettre l'URL de resultat.php  dans les règlages de la liste (URL absolu de la page où se trouve le formulaire)

(resultat.php -- ou le nom que tu lui a donné--  est la page où tu débarques et où il n'y a pas de formulaire du tout, jsute un message du script après t'être abonné ou désabonné par le formulaire ou désabonné en cliquant sur le lien {LINKS} de l'email)

Le désabonnement est automatique par {LINKS}, sinon l'abonné peut aller sur la page du formulaire (donc d'inscription) et renseigner son email pour se désabonner.

Je suppose que tu es dans le même cas de figure que moi.

Par contre, moi ce que je voudrais, c'est scinder en 2 le formulaire, pour avoir
1. sur une page de mon site (subscribe.php) une simple boîte où on renseigne son email pour s'abonner et on clique sur un bouton "s'abonner" et hop, on se retrouve abonné et renvoyé sur la page de résultat (resultat.php).

2. sur une autre page (unsubscribe.php) une simple boîte  où on renseigne son email pour se désabonner et on clique sur un bouton "désabonner" et hop, on se retrouve désabonné et renvoyé sur la page de résultat.

Donc il faut modifier le formulaire. Mais je n'ai pas encore tenté l'expérience. Bobe a-t-il la solution toute faite, ce serait super...  ?

Hors ligne

#7 2006-09-12 19:04:44

padaben
Membre
Lieu : au soleil
Inscription : 2006-09-05
Messages : 31

Re : Liens de désabonnement différents

Oui c'est cela, j'ai réussi à avoir pr le lien d'abonnement juste le formulaire avec l'adresse mail et valider... le code est le suivant si tu ne l'a pas ...

<form method="post" action="lefichierform.php">
Adresse email : <input type="text" name="email" maxlength="100" /> 
<input type="hidden" name="liste" value="tonnumerodeliste" />
<input type="hidden" name="action" value="inscription" checked="checked" /><br />
<input type="submit" name="wanewsletter" value="Valider" />
</form>

et c idem pour désinscription, dans le formulaire de base, il te suffit de supprimer les champs non désirés et ensuite dans la ligne désinscription mettre type="hidden" caché, ainsi que la valeur checked="checked" pour préciser que ce champ est coché par défaut, mais invisible....

voiulà le truc le plus compliqué en fait est de savoir comment modifier le lien {LINK} pour qu'il concatène, l'id et le mdp du contact à une adresse # du type www.monsite.com/mapagededesinscription.php sachant que  cette page sera dirigée vers le lien lefichierform.php ( de traitement du formulaire)....

il m'a semblé avoir déjà vu un code pr ca quelque part, mais c t pas clair...

j'espere avoir été assez clair....

@++ all

Padaben


********Création et réalisation de tous vos outils de communication - 100% des besoins quotidiens !! ********

Hors ligne

#8 2006-09-12 20:48:21

Chivita
Membre
Inscription : 2006-08-30
Messages : 18

Re : Liens de désabonnement différents

merci pour la modification du formulaire, je vais tester ça rapidement.

Pour le {LINKS}, il faut paramétrer la liste en indiquant comme "URL absolue de la page où se trouve le formulaire" non pas la page du formulaire, mais cette que tu as créée spécialement pour le résultat, et que j'appelle resultat.php, donc l'URL à donner est du type :

http://www.ton_site.com/newsletter/resultat.php

Cette page doit contenir le code suivant :

<?php
define('IN_WA_FORM', true);
define('WA_ROOTDIR', '/chemin_sur_ton_serveur/ton_site.com/wanewsletter');

include WA_ROOTDIR . '/newsletter.php';
?>

Ce code est fourni par le générateur de formulaire en donnant comme URL absolue celui cité plus haut.

En principe ça devrait marcher avec ça.

Moi j'ai encore un souci, c'est que lorsqu'une personne essaie de se désinscrire manuellement (donc par le formulaire, pas par {LINKS}, on l'envoie sur la page de résultat l'avertissant qu'il va recevoir un mail avec un lien à cliquer pour confirmer la désinscription (le fameux {LINKS}. Celui-ci fonctionne, l'adresse est supprimée dans la base, mais si la personne n'a pas refermé la page de résultat, celle-ci n'est pas mise à jour pour indiquer le nouveau message comme quoi la désinscription est bien validée définitivement.

Hors ligne

#9 2006-09-12 22:07:25

padaben
Membre
Lieu : au soleil
Inscription : 2006-09-05
Messages : 31

Re : Liens de désabonnement différents

pour le formulaire d'inscription oui je sais que c'est ce code, mon problème n'est pas là ...

c'est pour le désabonnement, le lien qui se trouve dans le mail envoyé pour la confirmation de désabonnement celui qui est de la forme

http://monsite/formulaire.php?codedelutilisateur

et donc,
en fait, si je ne peux pas utiliser le {LINK} classique, c'est parceque l'url de mon formulaire d'inscription ,'est pas au meme endroit que l'url de récéption du formulaire ( qui est donc le meme que le script ou se trouve le newsletter.php)
et aussi parceque l'url d'inscription n'est pas au meme endroit que l'url de désincription.

je voudrais donc savoir si il y a un moyen de concaténer le code de lutilisateur avec une autre adresse de formulaire.
pour ainsi faire partir la variable code de l'util depuis ce nouveau formulaire.

Moi j'ai encore un souci, c'est que lorsqu'une personne essaie de se désinscrire manuellement (donc par le formulaire, pas par {LINKS}, on l'envoie sur la page de résultat l'avertissant qu'il va recevoir un mail avec un lien à cliquer pour confirmer la désinscription (le fameux {LINKS}. Celui-ci fonctionne, l'adresse est supprimée dans la base, mais si la personne n'a pas refermé la page de résultat, celle-ci n'est pas mise à jour pour indiquer le nouveau message comme quoi la désinscription est bien validée définitivement.


je pense que effectivement si l'utilisateur n'a pas fermé la page, c ennuyeux, mais en fait, si il voit que un email va lui etre envoyé pour la confirmation. il fermera la page...

mais si il ne la ferme pas , rien ne t'empeche de modifier le code txt de l'email de confirmation de désinscription, et d'y insérer une phrase du type,
apres avoir cliké sur ce lien, vous serez completement désabonné,
patatipatata...

j'espere que tu vois ce que je dire..

bon courage..

++

Padaben[/list]


********Création et réalisation de tous vos outils de communication - 100% des besoins quotidiens !! ********

Hors ligne

#10 2006-09-12 23:18:12

Chivita
Membre
Inscription : 2006-08-30
Messages : 18

Re : Liens de désabonnement différents

Bon, si tu tiens à ce que le résultat du désabonnement s'affiche dans la même page que le formulaire de désabonnement, ET que le résultat de l'abonnement s'affiche dans la même page que le formulaire d'abonnement, alors je n'ai pas de solution, mais si tu est OK pour avoir une seule page de résultat que ce soit pour l'abonnement ou le désabonnement, alors voici ma solution :

Que l'URL d'inscription soit différent de l'URL de désinscription de change rien, puisque ce qui compte pour le script c'est là où se trouve le resultat, lequel s'affiche dans une autre page. Si tu a choisi d'appeler cette page newsletter.php, elle doit être dans un autre dossier que le script WAnewsletter sinon il y a risque de confusion avec le script lui-même. Ne pas insérer le code dans la page de script ! Créer une page vierge et juste insérer quelques balises HTML de présentation et dedans le code fourni par le générateur.

Bon, alors on checke un par un les points suivants :

1. Tu as créé une page HTML avec le formulaire d'inscription. Cette page s'appelle inscription.html (c'est un exemple, après tu adaptes à ton cas).

2. Tu as créé une page HTML avec le formulaire de désinscription. Cette page s'appelle desinscription.html

3. Tu as créé une page PHP à partir de rien, pour y faire s'afficher le résultat. Cette page s'appelle resultat.php. Elle peut s'appeler newsletter.php, mais n'a rien à voir avec le script WAnewsletter. Donc si tu l'appelles comme ça, ne la range pas dans le répertoire du script, sinon problème.

Mettons que tes trois jolies pages sont placées ici :

http://monsite.com/inscription.html
http://monsite.com/desinscription.html
http://monsite.com/resultat.php

4. Dans la page inscription.html, tu dois indiquer ceci :

<form method="post" action="http://monsite.com/resultat.php">

qui envoie sur la page de résultat laquelle appelle le script.

5. Même chose dans la page desinscription.html, tu dois indiquer ceci :

<form method="post" action="http://monsite.com/resultat.php">

qui envoie sur la page de résultat laquelle appelle le script.

6. Dans la page resultat.php, tu dois avoir le code

<?php
define('IN_WA_FORM', true);
define('WA_ROOTDIR', '/chemin_de_mon_site sur_le_serveur.com/wanewsletter');

include WA_ROOTDIR . '/newsletter.php';
?>

(là ça indique où aller chercher le script, moi je l'ai mis dans un répertoire wanewsletter, mais chez toi, le ROOTDIR est sans doute différent).

7. Et maintenant, il s'agit de paramétrer correctement la liste. Il faut donc que tu modifies ta liste dans le menu du haut de l'admin/listes puis modifier la liste) et indiques bien

http://monsite/resultat.php (sans oublier le http://)
comme ça ton {LINK} sera de la forme http://monsite/resultat.php?codedelutilisateur

VOilà, j'espère qu'avec ce petit mode d'emploi ça fonctionnera. Tu peux nommer tes fichiers comme tu veux, mais la page de resultat a l'extension php, et il faut donc être bien cohérent dans l'indication des adresses, ne pas se planter.

Hors ligne

#11 2009-11-21 02:35:18

Kristo
Membre
Inscription : 2009-11-21
Messages : 7

Re : Liens de désabonnement différents

Bonjour,

Voici une solution simple mais nécessitant une légère modification du fichier includes/class.form.php. Vous trouverez à la ligne 367 le bloc de code suivant:

$mailer->assign_tags(array(
      'LINK' => $this->make_link('desinscription')
));

Ajoutez ceci juste avant:

$this->listdata['form_url'] = 'http://domain.tld/path/to/resultat.php';

Dans la version 2.3.2, la ligne doit s'ajouter en lignes 384 et 558, avant

$this->mailer->assign_tags(array(
                'LINK' => $this->make_link()

Ouf, on peut dire que j'ai galéré pour trouver ça, c'est à dire la façon d'avoir une confirmation pour la désinscription...

Hors ligne

Pied de page des forums