From 293b0b7da2982f0c57a4b44538b07dd0e4d635ba Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20T=C3=A9tard?= Date: Thu, 21 Mar 2013 12:44:17 +0100 Subject: [PATCH] Utilisation du plugin 'pays'. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Le plugin 'pays' est utilisé pour afficher la liste des pays sur le formulaire de souscription. Le plugin est aussi utilisé pour vérifier que le pays annoncé par le souscripteur est bien valide. --- action/editer_souscription.php | 9 +++++++-- formulaires/souscription.html | 7 ++++++- formulaires/souscription.php | 15 +++++++++++---- paquet.xml | 3 ++- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/action/editer_souscription.php b/action/editer_souscription.php index d53c02f..ef80f1c 100644 --- a/action/editer_souscription.php +++ b/action/editer_souscription.php @@ -69,7 +69,6 @@ function souscription_modifier($id_souscription, $set=false) { 'adresse', 'code_postal', 'ville', - 'pays', 'id_souscription_campagne', 'type_souscription'), // black list @@ -90,7 +89,13 @@ function souscription_modifier($id_souscription, $set=false) { return "Identifiant de transaction introuvable..."; /* FIXME: à rendre traduisible. */ } - $c = array_merge($c, array("id_transaction" => $id_transaction)); + /* Récupération du nom du pays */ + $code_pays = _request('pays'); + $pays = sql_getfetsel(sql_multi("nom", $GLOBALS['spip_lang']), 'spip_pays', "code='$code_pays'"); + + $c = array_merge($c, + array("id_transaction" => $id_transaction, + "pays" => $pays)); if($err = objet_modifier_champs('souscription', $id_souscription, array(), $c)) return $err; diff --git a/formulaires/souscription.html b/formulaires/souscription.html index 1f2a93e..c5cbc19 100644 --- a/formulaires/souscription.html +++ b/formulaires/souscription.html @@ -1,3 +1,8 @@ +[(#SET{liste_pays,#ARRAY{}})] + + [(#SET{liste_pays, #GET{liste_pays}|array_merge{#ARRAY{#CODE, #NOM}}})] + +
[

(#ENV**{message_ok})

] [

(#ENV*{message_erreur})

] @@ -29,7 +34,7 @@ [(#SAISIE{textarea, adresse, label=<:souscription:label_adresse:>, rows=3})] [(#SAISIE{input, code_postal, label=<:souscription:label_code_postal:>})] [(#SAISIE{input, ville, label=<:souscription:label_ville:>})] - [(#SAISIE{input, pays, label=<:souscription:label_pays:>})] + [(#SAISIE{selection, pays, label=<:souscription:label_pays:>, datas=#GET{liste_pays}})]

diff --git a/formulaires/souscription.php b/formulaires/souscription.php index 69d28c5..aedf849 100644 --- a/formulaires/souscription.php +++ b/formulaires/souscription.php @@ -163,10 +163,17 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne) { if ($e = _request('courriel') AND !email_valide($e)) $erreurs['courriel'] = _T('form_prop_indiquer_email'); - /* Le code postal n'est vérifié que si on est dans le cas de la France */ - if($e = _request('pays') AND strtolower(trim($e)) == "france") { - if ($e = _request('code_postal') AND !preg_match("/^(2[ABab]|0[1-9]|[1-9][0-9])[0-9]{3}$/", $e)) { - $erreurs['code_postal'] = "Code postal invalide"; + if($e = _request('pays')) { + $ret = sql_select('nom', 'spip_pays', "code='${e}'"); + + if(sql_count($ret) != 1) + $erreurs['pays'] = "Pays invalide"; + + /* Le code postal n'est vérifié que si on est dans le cas de la France */ + elseif($e = _request('pays') AND $e == "FR") { + if ($e = _request('code_postal') AND !preg_match("/^(2[ABab]|0[1-9]|[1-9][0-9])[0-9]{3}$/", $e)) { + $erreurs['code_postal'] = "Code postal invalide"; + } } } diff --git a/paquet.xml b/paquet.xml index 946a8dc..64ac3ee 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ + -- 2.30.2