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 $erreurs = formulaires_editer_objet_verifier('souscription_campagne',
61 $id_souscription_campagne,
66 $type = _request("type_objectif");
67 if (!in_array($type, array('don', 'adhesion')))
68 $erreurs['type_objectif'] = _T("souscription_campagne:erreur_objectif_invalide");
69 elseif ($type=="don" AND lire_config("souscription/don_activer","off")!=="on")
70 $erreurs['type_objectif'] = _T("souscription_campagne:erreur_objectif_don_inactif");
71 elseif ($type=="adhesion" AND lire_config("souscription/adhesion_activer","off")!=="on")
72 $erreurs['type_objectif'] = _T("souscription_campagne:erreur_objectif_adhesion_inactif");
74 /* Si un objectif est demandé, alors on vérifie que les champs sont
75 * bien des entiers. */
76 if (_request('objectif_oui_non')=='on'){
77 $objectif = _request('objectif');
78 if (!ctype_digit($objectif) || intval($objectif)<0)
79 $erreurs['objectif'] = _T("souscription_campagne:erreur_objectif_invalide");
81 $objectif_initial = _request('objectif_initial');
82 if ($objectif_initial!=''){
83 if (!ctype_digit($objectif_initial) || intval($objectif_initial<0))
84 $erreurs['objectif_initial'] = _T("souscription_campagne:erreur_objectif_initial_valeur");
85 elseif (intval($objectif_initial)>$objectif)
86 $erreurs['objectif_initial'] = _T("souscription_campagne:erreur_objectif_initial_supperieur_objectif");
90 /* Si une limite est demandée, alors, on vérifie que le champs est
92 $limite_oui_non = _request('limite_oui_non');
93 if ($limite_oui_non=="on"){
94 $limite = _request('limite');
95 if (!ctype_digit($objectif))
96 $erreurs['limite'] = _T("souscription_campagne:erreur_limite_valeur");
99 /* Si une guration spécifique est demandée, alors on vérifie les
100 * valeurs 'type_saisie' et 'montants' (si on a demandé un bouton
101 * radio ou une selection). Autrement, les données sont supprimées
102 * dans la fonction traiter. */
103 if (_request('configuration_specifique')){
104 $type_saisie = _request('type_saisie');
105 if (!$type_saisie || !in_array($type_saisie, array('radio', 'selection', 'input')))
106 $erreurs['type_saisie'] = _T('souscription:erreur_type_saisie');
108 $montants = _request('montants');
109 if ($type_saisie && in_array($type_saisie, array('radio', 'selection'))){
110 if (!$montants || !is_string($montants))
111 $erreurs['montants'] = _T('souscription:erreur_montants');
113 elseif (!montants_str2array($montants))
114 $erreurs['montants'] = _T('souscription:erreur_montants');
121 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,