Le formulaire de souscription ne s'affichait pas même sans objectif.
[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         $erreurs = 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                 $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");
73
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");
80
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");
87                 }
88         }
89
90         /* Si une limite est demandée, alors, on vérifie que le champs est
91          * bien un entier. */
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");
97         }
98
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');
108                 else {
109                         $montants = _request('montants');
110                         if ($type_saisie && $type_saisie!=="input"){
111                                 if (!$montants || !is_string($montants))
112                                         $erreurs['montants'] = _T('souscription:erreur_montants');
113
114                                 elseif (!montants_str2array($montants))
115                                         $erreurs['montants'] = _T('souscription:erreur_montants');
116                         }
117                 }
118         }
119
120         return $erreurs;
121 }
122
123 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne = 'new',
124                                                                $retour = '',
125                                                                $lier_trad = 0,
126                                                                $config_fonc = '',
127                                                                $row = array(),
128                                                                $hidden = ''){
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');
135         }
136
137         if (_request('configuration_specifique'!="on")){
138                 set_request('type_saisie', '');
139                 set_request('montants', '');
140         }
141
142         $res = formulaires_editer_objet_traiter('souscription_campagne',
143                 $id_souscription_campagne,
144                 '',
145                 $lier_trad,
146                 $retour,
147                 $config_fonc,
148                 $row,
149                 $hidden);
150
151         return $res;
152 }