8f93252a830c2a4f7f439821a5f1be5db290c0c2
[spip_souscriptions.git] / formulaires / editer_souscription_campagne.php
1 <?php
2 /**
3  * Gestion du formulaire de d'édition de souscription_campagne
4  *
5  * @plugin     Souscription
6  * @copyright  2013
7  * @author     Olivier Tétard
8  * @licence    GNU/GPL
9  * @package    SPIP\Souscription\Formulaires
10  */
11
12 if (!defined('_ECRIRE_INC_VERSION')) return;
13
14 include_spip('inc/actions');
15 include_spip('inc/editer');
16
17 function formulaires_editer_souscription_campagne_identifier_dist($id_souscription_campagne = 'new',
18                                                                   $retour = '',
19                                                                   $lier_trad = 0,
20                                                                   $config_fonc = '',
21                                                                   $row = array(),
22                                                                   $hidden = ''){
23         return serialize(array(intval($id_souscription_campagne)));
24 }
25
26 function formulaires_editer_souscription_campagne_charger_dist($id_souscription_campagne = 'new',
27                                                                $retour = '',
28                                                                $lier_trad = 0,
29                                                                $config_fonc = '',
30                                                                $row = array(),
31                                                                $hidden = ''){
32         $valeurs = formulaires_editer_objet_charger('souscription_campagne',
33                 $id_souscription_campagne,
34                 '',
35                 $lier_trad,
36                 $retour,
37                 $config_fonc,
38                 $row,
39                 $hidden);
40
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";
46
47         // pour la saisie uniquement, pas en base
48         $valeurs['objectif_oui_non'] = "";
49
50         return $valeurs;
51 }
52
53 function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne = 'new',
54                                                                 $retour = '',
55                                                                 $lier_trad = 0,
56                                                                 $config_fonc = '',
57                                                                 $row = array(),
58                                                                 $hidden = ''){
59
60         $ret = formulaires_editer_objet_verifier('souscription_campagne',
61                 $id_souscription_campagne,
62                 array('titre',
63                         'type_objectif',
64                 ));
65
66         $type = _request("type_objectif");
67         if (!in_array($type, array('don', 'adhesion')))
68                 $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide");
69
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");
76
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");
83                 }
84         }
85
86         /* Si une limite est demandée, alors, on vérifie que le champs est
87          * bien un entier. */
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");
93         }
94
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');
103
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');
108
109                         elseif (!montants_str2array($montants))
110                                 $ret['montants'] = _T('souscription:message_nok_montants');
111                 }
112         }
113
114         return $ret;
115 }
116
117 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne = 'new',
118                                                                $retour = '',
119                                                                $lier_trad = 0,
120                                                                $config_fonc = '',
121                                                                $row = array(),
122                                                                $hidden = ''){
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', '');
129         }
130
131         if (_request('configuration_specifique'!="on")){
132                 set_request('type_saisie', '');
133                 set_request('montants', '');
134         }
135
136         $res = formulaires_editer_objet_traiter('souscription_campagne',
137                 $id_souscription_campagne,
138                 '',
139                 $lier_trad,
140                 $retour,
141                 $config_fonc,
142                 $row,
143                 $hidden);
144
145         return $res;
146 }