Utilisation de la balise #AVANCEMENT_CAMPAGNE dans les squelettes.
[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                                             array('saisie' => 'oui_non',
85                                                   'options' => array('nom' => 'objectif_limiter',
86                                                                      'explication' => _T('souscription:explication_campagne_objectif_limite'),
87                                                                      'label' => _T('souscription:label_objectif_limite')))
88                                             ),
89                          ),
90                    array('saisie' => 'textarea',
91                          'options' => array('nom' => 'texte',
92                                             'label' => _T('souscription:label_description'),
93                                             'inserer_barre' => 'edition',
94                                             'rows' => '10'))
95                    );
96
97   $valeurs['_saisies'] = $saisies;
98
99   return $valeurs;
100 }
101
102 function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne='new',
103                                                                 $retour='',
104                                                                 $lier_trad=0,
105                                                                 $config_fonc='',
106                                                                 $row=array(),
107                                                                 $hidden='')
108 {
109
110   $ret = formulaires_editer_objet_verifier('souscription_campagne',
111                                            $id_souscription_campagne,
112                                            array('titre',
113                                                  'type_objectif',
114                                                  ));
115
116   $type = _request("type_objectif");
117   if(!in_array($type, array('don', 'adhesion')))
118     $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide");
119
120   /* Si un objectif est demandé, alors on vérifie que les champs sont
121    * bien des entiers. */
122   if(_request('objectif_oui_non') == 'on') {
123     $objectif = _request('objectif');
124     if(!ctype_digit($objectif) || intval($objectif) < 0)
125       $ret['objectif'] = _T("souscription:message_nok_objectif_invalide");
126
127     $objectif_initial = _request('objectif_initial');
128     if($objectif_initial != '') {
129       if(!ctype_digit($objectif_initial) || intval($objectif_initial < 0))
130         $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_valeur");
131       elseif(intval($objectif_initial) > $objectif)
132         $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_supperieur_objectif");
133     }
134   }
135
136   /* Si une limite est demandée, alors, on vérifie que le champs est
137    * bien un entier. */
138   $limite_oui_non = _request('limite_oui_non');
139   if($limite_oui_non == "on") {
140     $limite = _request('limite');
141     if(!ctype_digit($objectif))
142       $ret['limite'] = _T("souscription:message_nok_limite_valeur");
143   }
144
145   return $ret;
146 }
147
148 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne='new',
149                                                                $retour='',
150                                                                $lier_trad=0,
151                                                                $config_fonc='',
152                                                                $row=array(),
153                                                                $hidden='')
154 {
155   /* Si un objectif n'est pas demandée, alors, on remplace la valeur
156    * fournie (quelqu'elle soit, par 0) */
157   if(_request('objectif_oui_non') != "on") {
158     set_request('objectif', 0);
159     set_request('objectif_initial', 0);
160     set_request('objectif_limiter', '');
161   }
162
163   $res = formulaires_editer_objet_traiter('souscription_campagne',
164                                           $id_souscription_campagne,
165                                           '',
166                                           $lier_trad,
167                                           $retour,
168                                           $config_fonc,
169                                           $row,
170                                           $hidden);
171
172   return $res;
173 }