3 * Gestion du formulaire de d'édition de souscription_campagne
7 * @author Olivier Tétard
9 * @package SPIP\Souscription\Formulaires
12 if (!defined('_ECRIRE_INC_VERSION')) return;
14 include_spip('inc/actions');
15 include_spip('inc/editer');
17 function formulaires_editer_souscription_campagne_identifier_dist($id_souscription_campagne='new',
24 return serialize(array(intval($id_souscription_campagne)));
27 function formulaires_editer_souscription_campagne_charger_dist($id_souscription_campagne='new',
34 $valeurs = formulaires_editer_objet_charger('souscription_campagne',
35 $id_souscription_campagne,
43 /* Si la valeur du champ 'objectif' est 0, alors, c'est que
44 * l'objectif n'est pas activé. */
45 $valeurs['_defaut_objectif'] = "";
46 if($valeurs['objectif'] AND $valeurs['objectif'] > 0)
47 $valeurs['_defaut_objectif'] = "on";
49 // pour la saisie uniquement, pas en base
50 $valeurs['objectif_oui_non'] = "";
55 function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne='new',
63 $ret = formulaires_editer_objet_verifier('souscription_campagne',
64 $id_souscription_campagne,
69 $type = _request("type_objectif");
70 if(!in_array($type, array('don', 'adhesion')))
71 $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide");
73 /* Si un objectif est demandé, alors on vérifie que les champs sont
74 * bien des entiers. */
75 if(_request('objectif_oui_non') == 'on') {
76 $objectif = _request('objectif');
77 if(!ctype_digit($objectif) || intval($objectif) < 0)
78 $ret['objectif'] = _T("souscription:message_nok_objectif_invalide");
80 $objectif_initial = _request('objectif_initial');
81 if($objectif_initial != '') {
82 if(!ctype_digit($objectif_initial) || intval($objectif_initial < 0))
83 $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_valeur");
84 elseif(intval($objectif_initial) > $objectif)
85 $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_supperieur_objectif");
89 /* Si une limite est demandée, alors, on vérifie que le champs est
91 $limite_oui_non = _request('limite_oui_non');
92 if($limite_oui_non == "on") {
93 $limite = _request('limite');
94 if(!ctype_digit($objectif))
95 $ret['limite'] = _T("souscription:message_nok_limite_valeur");
98 /* Si une guration spécifique est demandée, alors on vérifie les
99 * valeurs 'type_saisie' et 'montants' (si on a demandé un bouton
100 * radio ou une selection). Autrement, les données sont supprimées
101 * dans la fonction traiter. */
102 if(_request('configuration_specifique')) {
103 $type_saisie = _request('type_saisie');
104 if(!$type_saisie || !in_array($type_saisie, array('radio', 'selection', 'input')))
105 $ret['type_saisie'] = _T('souscription:message_nok_type_saisie');
107 $montants = _request('montants');
108 if($type_saisie && in_array($type_saisie, array('radio', 'selection'))) {
109 if(!$montants || !is_string($montants))
110 $ret['montants'] = _T('souscription:message_nok_montants');
112 elseif(!montants_str2array($montants))
113 $ret['montants'] = _T('souscription:message_nok_montants');
120 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne='new',
127 /* Si un objectif n'est pas demandée, alors, on remplace la valeur
128 * fournie (quelqu'elle soit, par 0) */
129 if(_request('objectif_oui_non') != "on") {
130 set_request('objectif', 0);
131 set_request('objectif_initial', 0);
132 set_request('objectif_limiter', '');
135 if(_request('configuration_specifique' != "on")) {
136 set_request('type_saisie', '');
137 set_request('montants', '');
140 $res = formulaires_editer_objet_traiter('souscription_campagne',
141 $id_souscription_campagne,