From: Olivier Tétard Date: Thu, 21 Mar 2013 08:45:33 +0000 (+0100) Subject: Ajout d'un champ 'pays' dans la table spip_souscriptions. X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=512add64063389b466af8f26fb1172abec1d4b6a;p=spip_souscriptions.git Ajout d'un champ 'pays' dans la table spip_souscriptions. Si ce champs vaut « France », alors le code postal est vérifié selon les critères pour la France / Corse. Autrement, ce champs n'est pas vérifié. --- diff --git a/action/editer_souscription.php b/action/editer_souscription.php index 5569492..0a61ddd 100644 --- a/action/editer_souscription.php +++ b/action/editer_souscription.php @@ -69,6 +69,7 @@ function souscription_modifier($id_souscription, $set=false) { 'adresse', 'code_postal', 'ville', + 'pays', 'id_souscription_campagne', 'type_souscription'), // black list diff --git a/action/exporter_souscriptions.php b/action/exporter_souscriptions.php index e68eac7..cba5a3b 100644 --- a/action/exporter_souscriptions.php +++ b/action/exporter_souscriptions.php @@ -33,7 +33,7 @@ function action_exporter_souscriptions_dist($arg=null) { /* Préparation de la requête */ $select = "id_souscription, courriel, type_souscription," ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id," - ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription," + ."nom, prenom, code_postal, ville, pays, recu_fiscal, envoyer_info, date_souscription," ."spip_souscription_campagnes.id_souscription_campagne, titre"; $from = "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)"; @@ -71,6 +71,7 @@ function action_exporter_souscriptions_dist($arg=null) { "Prénom", "Code Postal", "Ville", + "Pays", "Souhaite reçu fiscal", "Souhaite être informé", "Date don", diff --git a/base/souscription.php b/base/souscription.php index 886663a..85069dd 100644 --- a/base/souscription.php +++ b/base/souscription.php @@ -53,6 +53,7 @@ function souscription_declarer_tables_objets_sql($tables) { "code_postal" => "text NOT NULL DEFAULT ''", "adresse" => "text NOT NULL DEFAULT ''", "ville" => "text NOT NULL DEFAULT ''", + "pays" => "text NOT NULL DEFAULT ''", "recu_fiscal" => "varchar(3) NOT NULL DEFAULT ''", "type_souscription" => "varchar(255) NOT NULL DEFAULT ''", "informer_comite_local" => "varchar(3) NOT NULL DEFAULT ''", @@ -65,8 +66,8 @@ function souscription_declarer_tables_objets_sql($tables) { "KEY id_souscription_campagne" => "id_souscription_campagne"), 'titre' => "nom AS titre, '' AS lang", 'date' => "date_souscription", - 'champs_editables' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'), - 'champs_versionnes' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'), + 'champs_editables' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'pays', 'recu_fiscal', 'envoyer_info'), + 'champs_versionnes' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'pays', 'recu_fiscal', 'envoyer_info'), 'rechercher_champs' => array(), 'join' => array("id_transaction" => "id_transaction"), /* 'join' => array("id_souscription_campagne" => "id_souscription_campagne"), */ diff --git a/formulaires/souscription.html b/formulaires/souscription.html index 3f92dfb..6a2a927 100644 --- a/formulaires/souscription.html +++ b/formulaires/souscription.html @@ -29,6 +29,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:>})]

diff --git a/formulaires/souscription.php b/formulaires/souscription.php index 7335428..69d28c5 100644 --- a/formulaires/souscription.php +++ b/formulaires/souscription.php @@ -88,6 +88,7 @@ function formulaires_souscription_charger_dist($id_souscription_campagne) { 'adresse' => '', 'code_postal' => '', 'ville' => '', + 'pays' => '', 'id_souscription_campagne' => $id_souscription_campagne, 'type_souscription' => $type, ); @@ -147,7 +148,7 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne) { if(_request('recu_fiscal') || $type == "adhesion") { - foreach(array('prenom', 'nom', 'adresse', 'code_postal', 'ville') as $obligatoire) { + foreach(array('prenom', 'nom', 'adresse', 'code_postal', 'ville', 'pays') as $obligatoire) { if(!_request($obligatoire)) { if($type == "adhesion") { $erreurs[$obligatoire] = "Ce champ est obligatoire pour les adhésions"; @@ -162,8 +163,11 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne) { if ($e = _request('courriel') AND !email_valide($e)) $erreurs['courriel'] = _T('form_prop_indiquer_email'); - 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"; + /* 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('montant')) { diff --git a/lang/souscription_fr.php b/lang/souscription_fr.php index 792bdd8..8e40e8d 100644 --- a/lang/souscription_fr.php +++ b/lang/souscription_fr.php @@ -51,6 +51,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'label_prenom' => 'Prénom', 'label_recu_fiscal' => 'Envoyer un reçu fiscal', 'label_ville' => 'Ville', + 'label_pays' => 'Pays', 'label_campagne' => 'Campagne', 'label_titre_campagne' => 'Titre de la campagne', 'label_exporter_payes' => 'Exporter les souscriptions payés', diff --git a/paquet.xml b/paquet.xml index c213119..9e8e255 100644 --- a/paquet.xml +++ b/paquet.xml @@ -6,7 +6,7 @@ compatibilite="[3.0.5;3.0.*]" logo="" documentation="" - schema="0.1" + schema="0.2" > Souscription diff --git a/prive/objets/contenu/souscription.html b/prive/objets/contenu/souscription.html index f8f8f72..1c722c7 100644 --- a/prive/objets/contenu/souscription.html +++ b/prive/objets/contenu/souscription.html @@ -57,6 +57,11 @@ (#VILLE) ] +[
+ + (#PAYS) +
] + [
(#RECU_FISCAL|?{"oui","non"}) diff --git a/souscription_administrations.php b/souscription_administrations.php index 2e18330..4645590 100644 --- a/souscription_administrations.php +++ b/souscription_administrations.php @@ -30,6 +30,8 @@ function souscription_upgrade($nom_meta_base_version, $version_cible) { ))); $maj['0.1'] = array(array('sql_alter', "TABLE spip_souscriptions ADD informer_comite_local varchar(3) NOT NULL DEFAULT ''")); + $maj['0.2'] = array(array('sql_alter', "TABLE spip_souscriptions ADD pays text NOT NULL DEFAULT ''")); + include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj); }