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',
23 return serialize(array(intval($id_souscription_campagne)));
26 function formulaires_editer_souscription_campagne_charger_dist($id_souscription_campagne = 'new',
32 $valeurs = formulaires_editer_objet_charger('souscription_campagne',
33 $id_souscription_campagne,
41 /* Si la valeur du champ 'objectif' est 0, alors, c'est que
42 * l'objectif n'est pas activé. */
43 $valeurs['_defaut_objectif'] = "";
44 if ($valeurs['objectif'] AND $valeurs['objectif']>0)
45 $valeurs['_defaut_objectif'] = "on";
47 // pour la saisie uniquement, pas en base
48 $valeurs['objectif_oui_non'] = "";
53 function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne = 'new',
60 $ret = formulaires_editer_objet_verifier('souscription_campagne',
61 $id_souscription_campagne,
66 $type = _request("type_objectif");
67 if (!in_array($type, array('don', 'adhesion')))
68 $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide");
70 /* Si un objectif est demandé, alors on vérifie que les champs sont
71 * bien des entiers. */
72 if (_request('objectif_oui_non')=='on'){
73 $objectif = _request('objectif');
74 if (!ctype_digit($objectif) || intval($objectif)<0)
75 $ret['objectif'] = _T("souscription:message_nok_objectif_invalide");
77 $objectif_initial = _request('objectif_initial');
78 if ($objectif_initial!=''){
79 if (!ctype_digit($objectif_initial) || intval($objectif_initial<0))
80 $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_valeur");
81 elseif (intval($objectif_initial)>$objectif)
82 $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_supperieur_objectif");
86 /* Si une limite est demandée, alors, on vérifie que le champs est
88 $limite_oui_non = _request('limite_oui_non');
89 if ($limite_oui_non=="on"){
90 $limite = _request('limite');
91 if (!ctype_digit($objectif))
92 $ret['limite'] = _T("souscription:message_nok_limite_valeur");
95 /* Si une guration spécifique est demandée, alors on vérifie les
96 * valeurs 'type_saisie' et 'montants' (si on a demandé un bouton
97 * radio ou une selection). Autrement, les données sont supprimées
98 * dans la fonction traiter. */
99 if (_request('configuration_specifique')){
100 $type_saisie = _request('type_saisie');
101 if (!$type_saisie || !in_array($type_saisie, array('radio', 'selection', 'input')))
102 $ret['type_saisie'] = _T('souscription:message_nok_type_saisie');
104 $montants = _request('montants');
105 if ($type_saisie && in_array($type_saisie, array('radio', 'selection'))){
106 if (!$montants || !is_string($montants))
107 $ret['montants'] = _T('souscription:message_nok_montants');
109 elseif (!montants_str2array($montants))
110 $ret['montants'] = _T('souscription:message_nok_montants');
117 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne = 'new',
123 /* Si un objectif n'est pas demandée, alors, on remplace la valeur
124 * fournie (quelqu'elle soit, par 0) */
125 if (_request('objectif_oui_non')!="on"){
126 set_request('objectif', 0);
127 set_request('objectif_initial', 0);
128 set_request('objectif_limiter', '');
131 if (_request('configuration_specifique'!="on")){
132 set_request('type_saisie', '');
133 set_request('montants', '');
136 $res = formulaires_editer_objet_traiter('souscription_campagne',
137 $id_souscription_campagne,