Bonjour
Avec spip, je dois afficher une pétition et avoir un champ obligatoire nommé ville.
Avec champs extra2 j'ai créer un champ:
ville
Objet: article
Label:ville
saisie:texte
obligatoire
Squelettes/formulaires.html
J'ai enlevé ce qui était relatif à une pétition avec un site web
J'ai ajouté:
<li class='saisie_ville_email[ (#ENV*{erreurs}|table_valeur{session_ville}|oui)erreur] obligatoire'>
<label for="session_ville"><:form_pet_votre_ville:></label>
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{session_ville})</span>]
<input type="text" class="text" name="session_ville" id="session_ville" value="#ENV{session_ville}" size="30" />
</li>
Ecrire/lang/spip_fr.html
ajout:
'form_pet_votre_ville' => 'Votre ville',
Le tout s'affiche très bien et fonctionne bien.
PROBLÈME:
J'essaie d'éditer signature.php
Je veux que la ville apparaisse sur le courriel de confirmation et aussi dans l'espace privé lorsque je regarde les pétitions par http://www.poidsvert.org/ecrire/?exec=controle_petition
Voici ce que j,ai ajouté dans signature.php (ce qui est relatif à ville mais j'ai laissé les ajouts en contexte pour que vous me compreniez):
'session_ville' => sinon($GLOBALS['visiteur_session']['session_nom'],
$GLOBALS['visiteur_session']['ville']),
function formulaires_signature_traiter_dist($id_article, $petition, $ville, $texte, $site_obli, $message) {
$reponse = _T('form_pet_probleme_technique');
include_spip('base/abstract_sql');
if (spip_connect()) {
$controler_signature = charger_fonction('controler_signature', 'inc');
$reponse = $controler_signature($id_article,
_request('session_nom'), _request('session_email'),
_request('session_ville'),
_request('message'), _request('signature_nom_site'),
_request('signature_url_site'), _request('url_page'));
}
function inc_controler_signature_dist($id_article, $nom, $mail, $ville, $message, $site, $url_site, $url_page)
revision_signature($id_signature, array(
'nom_email' => $nom,
'ad_email' => $mail,
'ville' => $ville,
$r = _T('form_pet_mail_confirmation',
array('titre' => $titre,
'nom_email' => $nom,
'nom_site' => $site,
'ville' => $ville,
Lorsque _request('session_ville'), est présent, je vois la ville dans le message de confirmation courriel mais l'adresse de retour se présente sous cette forme:
./?var_confirm=VHKUajL5#sp83
au lieu de http://www.poidsvert.org/spip.php?article83&var_confirm=oaY8tHWq#sp83
Dans tous mes essais, j'ai aussi réussi à faire afficher la ville dans exec=controle_petition mais cette signature est dans les signatures en attente de validation car je n'avais pas une adresse de retour complet dans le formulaire de validation.
Je suis sur la bonne piste mais j'apprécierais beaucoup avoir de l'aide car la pétition en ligne est urgente (vendredi 26 mars)
Merci
RP