From: Olivier Tétard Date: Thu, 21 Mar 2013 11:44:17 +0000 (+0100) Subject: Utilisation du plugin 'pays'. X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=293b0b7da2982f0c57a4b44538b07dd0e4d635ba;p=spip_souscriptions.git Utilisation du plugin 'pays'. 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. --- 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 @@ +