Annonce

#1 2007-02-22 13:01:09

acaton
Membre
Inscription : 2007-02-22
Messages : 3

Re : Wanewsletter 2.3 + spip1.9.3 [resolu]

Bonjour,

Une incompatibilité ?
Le formulaire Wanewsletter 2.3 dans un spip 1.9.2++ me renvoie :

Fatal error: Cannot redeclare is_utf8() (previously declared in /[...]/V3/ecrire/inc/charsets.php:598) in /[...]//V3/newsletter2/includes/functions.php on line 896

Les texte de mon spip étaient en iso, une fois passées les opération spip de passage en utf8 il n'y a pas de changement.

Une idée pour que ça passe ?
Merci

Hors ligne

#2 2007-02-22 14:35:33

acaton
Membre
Inscription : 2007-02-22
Messages : 3

Re : Wanewsletter 2.3 + spip1.9.3 [resolu]

il faut mettre en commentaire ou effacer la fonction dans wanewsletter include/function.php, car une fontion du même nom existe dans spip.

Par contre pas encore réussi à brancher sans tomber sur "rien à faire ici"...

Hors ligne

#3 2007-02-22 14:57:45

acaton
Membre
Inscription : 2007-02-22
Messages : 3

Re : Wanewsletter 2.3 + spip1.9.3 [resolu]

Je recopie une réponse trouvée sur la liste spip, qui marche impec :

"
Je 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 :
<form name="formnl" id="formnl" method="post"
action="inscription-newsletter.php">
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
"

Hors ligne

Pied de page des forums