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 $saisies = array("input", "radio", "radioinput", "selection");
106 if (!$type_saisie || !in_array($type_saisie, $saisies))
107 $erreurs['type_saisie'] = _T('souscription:erreur_champ_invalide');
109 $montants = _request('montants');
110 if ($type_saisie && $type_saisie!=="input"){
111 if (!$montants || !is_string($montants))
112 $erreurs['montants'] = _T('souscription:erreur_montants');
114 elseif (!montants_str2array($montants))
115 $erreurs['montants'] = _T('souscription:erreur_montants');
123 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne = 'new',
129 /* Si un objectif n'est pas demandée, alors, on remplace la valeur
130 * fournie (quelqu'elle soit, par 0) */
131 if (_request('objectif_oui_non')!="on"){
132 set_request('objectif', 0);
133 set_request('objectif_initial', 0);
134 set_request('objectif_limiter', 'off');
137 if (_request('configuration_specifique'!="on")){
138 set_request('type_saisie', '');
139 set_request('montants', '');
142 $res = formulaires_editer_objet_traiter('souscription_campagne',
143 $id_souscription_campagne,