From: Olivier Tétard Date: Sun, 10 Mar 2013 20:06:36 +0000 (+0100) Subject: Ajout d'un champs type_souscription dans la table souscription_dons X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=1ea256d811eb6157198974e107c6252673a2dfad;p=spip_souscriptions.git Ajout d'un champs type_souscription dans la table souscription_dons --- diff --git a/action/editer_souscription_don.php b/action/editer_souscription_don.php index d9cf50a..e4c0254 100644 --- a/action/editer_souscription_don.php +++ b/action/editer_souscription_don.php @@ -68,7 +68,8 @@ function don_modifier($id_souscription_don, $set=false) { 'adresse', 'code_postal', 'ville', - 'id_souscription_campagne'), + 'id_souscription_campagne', + 'type_souscription'), // black list array('statut', 'date'), // donnees eventuellement fournies diff --git a/base/souscription.php b/base/souscription.php index f25286a..cb22ded 100644 --- a/base/souscription.php +++ b/base/souscription.php @@ -54,6 +54,7 @@ function souscription_declarer_tables_objets_sql($tables) { "adresse" => "text NOT NULL DEFAULT ''", "ville" => "text NOT NULL DEFAULT ''", "recu_fiscal" => "varchar(3) NOT NULL DEFAULT ''", + "type_souscription" => "varchar(255) NOT NULL DEFAULT ''", "envoyer_info" => "varchar(3) NOT NULL DEFAULT ''", "date_souscription " => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'", "maj" => "TIMESTAMP" diff --git a/formulaires/editer_souscription_campagne.html b/formulaires/editer_souscription_campagne.html index 16996e3..e49d5cb 100644 --- a/formulaires/editer_souscription_campagne.html +++ b/formulaires/editer_souscription_campagne.html @@ -12,7 +12,7 @@ [(#SAISIE{selection, type_objectif, obligatoire=oui, label=<:souscription_campagne:label_type_objectif:>, explication=<:souscription_campagne:explication_type_objectif:>, - datas=#ARRAY{souscriptiondon, Dons, souscriptionadhesion, Adhésions, souscriptionabonnement, Abonnements}})] + datas=#ARRAY{don, Dons, adhesion, Adhésions, abonnement, Abonnements}})] [(#SAISIE{input, objectif, obligatoire=oui, label=<:souscription_campagne:label_objectif:>, explication=<:souscription_campagne:explication_objectif:>})] [(#SAISIE{input, objectif_initial, obligatoire=oui, label=<:souscription_campagne:label_objectif_initial:>, explication=<:souscription_campagne:explication_objectif_initial:>})] [(#SAISIE{textarea, texte, label=<:souscription_campagne:label_description:>, inserer_barre=edition, rows=10})] diff --git a/formulaires/editer_souscription_campagne.php b/formulaires/editer_souscription_campagne.php index 37aa3ff..95992ca 100644 --- a/formulaires/editer_souscription_campagne.php +++ b/formulaires/editer_souscription_campagne.php @@ -53,7 +53,8 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription $row=array(), $hidden='') { - return formulaires_editer_objet_verifier('souscription_campagne', + + $ret = formulaires_editer_objet_verifier('souscription_campagne', $id_souscription_campagne, array('titre', 'objectif', @@ -61,6 +62,11 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription 'type_objectif', )); + $type = _request("type_objectif"); + if(!in_array($type, array('don', 'abonnement', 'adhesion'))) + $ret['type_objectif'] = "Type d'objectif invalide"; + + return $ret; } function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne='new', diff --git a/formulaires/souscription_don.html b/formulaires/souscription_don.html index c486f98..3c0a95e 100644 --- a/formulaires/souscription_don.html +++ b/formulaires/souscription_don.html @@ -27,6 +27,7 @@ $(document).ready(function() { [(#SAISIE{oui_non, recu_fiscal, label=<:souscription_don:label_recu_fiscal:>})] [(#SAISIE{oui_non, envoyer_info, label=<:souscription_don:label_envoyer_info:> })] [(#SAISIE{hidden, id_souscription_campagne})] + [(#SAISIE{hidden, type_souscription})]
diff --git a/formulaires/souscription_don.php b/formulaires/souscription_don.php index ac22b2e..f9acb15 100644 --- a/formulaires/souscription_don.php +++ b/formulaires/souscription_don.php @@ -79,6 +79,7 @@ function formulaires_souscription_don_charger_dist($id_souscription_campagne) { 'code_postal' => '', 'ville' => '', 'id_souscription_campagne' => $id_souscription_campagne, + 'type_souscription' => "don", ); } @@ -106,6 +107,8 @@ function formulaires_souscription_don_charger_dist($id_souscription_campagne) { */ function formulaires_souscription_don_verifier_dist($id_souscription_campagne) { + $campagne = _request('id_souscription_campagne'); + $erreurs = formulaires_editer_objet_verifier('souscription_don', 'new', array('courriel', 'montant', @@ -125,6 +128,19 @@ function formulaires_souscription_don_verifier_dist($id_souscription_campagne) if(intval($id_souscription_campagne) != intval(_request('id_souscription_campagne'))) $erreurs['message_erreur'] = "Campagne invalide"; + + /* La campagne doit être valide (définie dans la base) et doit + * accepter les dons. */ + $type = sql_getfetsel("type_objectif", + "spip_souscription_campagnes", + "id_souscription_campagne=$id_souscription_campagne"); + + if(!$type || $type != "don") + $erreurs['message_erreur'] = "Type de souscription invalide"; + + /* Le champ 'type' (hidden) doit être « don » */ + if(_request('type_souscription') != "don") + $erreurs['message_erreur'] = "Type de souscription invalide: " . _request('type_souscription'); if ($e = _request('courriel') AND !email_valide($e)) $erreurs['courriel'] = _T('form_prop_indiquer_email'); @@ -219,7 +235,7 @@ function verifier_campagne($id_souscription_campagne) { /* Vérification de l'existance de la *campagne*, de son *statut* et de la *concordance du type* */ if(intval($id_souscription_campagne) AND $t = sql_getfetsel('type_objectif', 'spip_souscription_campagnes', 'id_souscription_campagne='.intval($id_souscription_campagne)) - AND $t == 'souscriptiondon') + AND $t == 'don') { return true; }