renommage et rangement des chaines de langue erreurs, ne pas autoriser une 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         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                 if (!$type_saisie || !in_array($type_saisie, array('radio', 'selection', 'input')))
106                         $erreurs['type_saisie'] = _T('souscription:erreur_type_saisie');
107
108                 $montants = _request('montants');
109                 if ($type_saisie && in_array($type_saisie, array('radio', 'selection'))){
110                         if (!$montants || !is_string($montants))
111                                 $erreurs['montants'] = _T('souscription:erreur_montants');
112
113                         elseif (!montants_str2array($montants))
114                                 $erreurs['montants'] = _T('souscription:erreur_montants');
115                 }
116         }
117
118         return $erreurs;
119 }
120
121 function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne = 'new',
122                                                                $retour = '',
123                                                                $lier_trad = 0,
124                                                                $config_fonc = '',
125                                                                $row = array(),
126                                                                $hidden = ''){
127         /* Si un objectif n'est pas demandée, alors, on remplace la valeur
128          * fournie (quelqu'elle soit, par 0) */
129         if (_request('objectif_oui_non')!="on"){
130                 set_request('objectif', 0);
131                 set_request('objectif_initial', 0);
132                 set_request('objectif_limiter', '');
133         }
134
135         if (_request('configuration_specifique'!="on")){
136                 set_request('type_saisie', '');
137                 set_request('montants', '');
138         }
139
140         $res = formulaires_editer_objet_traiter('souscription_campagne',
141                 $id_souscription_campagne,
142                 '',
143                 $lier_trad,
144                 $retour,
145                 $config_fonc,
146                 $row,
147                 $hidden);
148
149         return $res;
150 }