Correction de la vérification des valeurs des objectifs de campagne.
[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 {
24   return serialize(array(intval($id_souscription_campagne)));
25 }
26
27 function formulaires_editer_souscription_campagne_charger_dist($id_souscription_campagne='new',
28                                                                $retour='',
29                                                                $lier_trad=0,
30                                                                $config_fonc='',
31                                                                $row=array(),
32                                                                $hidden='')
33 {
34   $valeurs = formulaires_editer_objet_charger('souscription_campagne',
35                                               $id_souscription_campagne,
36                                               '',
37                                               $lier_trad,
38                                               $retour,
39                                               $config_fonc,
40                                               $row,
41                                               $hidden);
42
43   $valeurs['objectif_oui_non'] = _request('objectif_oui_non');
44
45   /* Si la valeur du champ 'objectif' est 0, alors, c'est que
46    * l'objectif n'est pas activé. */
47   $defaut_objectif = "";
48   if($valeurs['objectif'] && $valeurs['objectif'] > 0)
49     $defaut_objectif = "on";
50
51   $saisies = array(array('saisie' => 'input',
52                          'options' => array('nom' => 'titre',
53                                             'label' => _T('souscription:label_titre'),
54                                             'obligatoire' => 'oui')
55                          ),
56                    array('saisie' => 'selection',
57                          'options' => array('nom' => 'type_objectif',
58                                             'obligatoire' => 'oui',
59                                             'label' => _T('souscription:label_type_objectif'),
60                                             'explication' => _T('souscription:explication_type_objectif'),
61                                             'datas' => array('don' => 'Dons',
62                                                              'adhesion' => 'Adhésions'))
63                          ),
64                    array('saisie' => 'oui_non',
65                          'options' => array('nom' => 'objectif_oui_non',
66                                             'label' => _T('souscription:label_objectif_oui_non'),
67                                             'defaut' => $defaut_objectif)
68                          ),
69                    array('saisie' => 'fieldset',
70                          'options' => array('nom' => 'groupe_limite',
71                                             'label' => _T('souscription:label_objectif_groupe'),
72                                             'afficher_si' => '@objectif_oui_non@ == "on"'),
73                          'saisies' => array(array('saisie' => 'input',
74                                                   'options' => array('nom' => 'objectif',
75                                                                      'obligatoire' => 'oui',
76                                                                      'label' => _T('souscription:label_objectif'),
77                                                                      'explication' => _T('souscription:explication_campagne_objectif')),
78                                                   ),
79                                             array('saisie' => 'input',
80                                                   'options' => array('nom' => 'objectif_initial',
81                                                                      'label' => _T('souscription:label_objectif_initial'),
82                                                                      'explication' => _T('souscription:explication_campagne_objectif_initial'))
83                                                   )
84                                             )
85                          ),
86                    array('saisie' => 'textarea',
87                          'options' => array('nom' => 'texte',
88                                             'label' => _T('souscription:label_description'),
89                                             'inserer_barre' => 'edition',
90                                             'rows' => '10'))
91                    );
92
93   $valeurs['_saisies'] = $saisies;
94
95   return $valeurs;
96 }
97
98 function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne='new',
99                                                                 $retour='',
100                                                                 $lier_trad=0,
101                                                                 $config_fonc='',
102                                                                 $row=array(),
103                                                                 $hidden='')
104 {
105
106   $ret = formulaires_editer_objet_verifier('souscription_campagne',
107                                            $id_souscription_campagne,
108                                            array('titre',
109                                                  'type_objectif',
110                                                  ));
111
112   $type = _request("type_objectif");
113   if(!in_array($type, array('don', 'adhesion')))
114     $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide");
115
116   /* Si un objectif est demandé, alors on vérifie que les champs sont
117    * bien des entiers. */
118   if(_request('objectif_oui_non') == 'on') {
119     $objectif = _request('objectif');
120     if(!ctype_digit($objectif) || intval($objectif) < 0)
121       $ret['objectif'] = _T("souscription:message_nok_objectif_invalide");
122
123     $objectif_initial = _request('objectif_initial');
124     if($objectif_initial != '') {
125       if(!ctype_digit($objectif_initial) || intval($objectif_initial < 0))
126         $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_valeur");
127       elseif(intval($objectif_initial) > $objectif)
128         $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_supperieur_objectif");
129     }
130   }
131
132   return $ret;
133 }
134
135 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne='new',
136                                                                $retour='',
137                                                                $lier_trad=0,
138                                                                $config_fonc='',
139                                                                $row=array(),
140                                                                $hidden='')
141 {
142
143   /* Si un objectif n'est pas demandée, alors, on remplace la valeur
144    * fournie (quelqu'elle soit, par 0) */
145   if(_request('objectif_oui_non') != "on") {
146     set_request('objectif', 0);
147     set_request('objectif_initial', 0);
148   }
149
150   $res = formulaires_editer_objet_traiter('souscription_campagne',
151                                           $id_souscription_campagne,
152                                           '',
153                                           $lier_trad,
154                                           $retour,
155                                           $config_fonc,
156                                           $row,
157                                           $hidden);
158
159   return $res;
160 }