source: spip-zone/_plugins_/reservation_evenement/trunk/formulaires/reservation.php @ 88283

Last change on this file since 88283 was 88283, checked in by abelass@…, 4 years ago

récupérer les quantités

  • Property svn:executable set to *
File size: 6.0 KB
Line 
1<?php
2/**
3 * Plugin Agenda 4 pour Spip 3.0
4 * Licence GPL 3
5 *
6 * 2006-2014
7 * Auteurs : cf paquet.xml
8 */
9
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12include_spip('inc/actions');
13include_spip('inc/editer');
14
15function formulaires_reservation_charger_dist($id='',$id_article=''){
16        include_spip('inc/config');
17        include_spip('formulaires/selecteur/generique_fonctions');
18       
19        //Si l'affichage n'est pas déjà définie on établit si une zone s'applique
20        if(!$id_article AND !$id){
21                include_spip('inc/reservation_evenements');
22               
23                $config=lire_config('reservation_evenement/rubrique_reservation');
24                $rubrique_reservation=picker_selected($config,'rubrique');
25                $zone=rubrique_reservation(
26                        '',
27                        'evenement',
28                        $rubrique_reservation,
29                        array(
30                                'tableau'=>'oui',
31                                'where'=>'e.date_fin>NOW() AND e.inscription=1 AND e.statut="publie"',
32                                'select'=>'*',
33                                'resultat'=>'par_id')
34                                );
35                               
36        }
37
38        if(!is_array($zone)){
39                $where=array('date_fin>NOW() AND inscription=1 AND statut="publie"');
40                if($id){
41                        if(!is_array($id))array_push($where,'id_evenement='.intval($id));
42                        elseif(is_array($id))array_push($where,'id_evenement IN ('.implode(',',$id).')');
43                }
44                if($id_article){
45                        if(!is_array($id_article)) array_push($where,'id_article='.intval($id_article));   
46                        elseif(is_array($id_article))array_push($where,'id_article IN ('.implode(',',$id_article).')');
47                }
48       
49                $sql = sql_select('*','spip_evenements',$where,'','date_debut,date_fin');
50       
51                $evenements=array();
52                $articles=array();
53                while ($row=sql_fetch($sql)){
54                        $evenements[$row['id_evenement']]=$row;
55                        $articles[]=$row['id_article'];
56                }               
57        }
58        else{
59                $evenements=$zone;
60        }
61
62       
63
64        $valeurs = array('evenements'=>$evenements,'articles'=>$evenements,'lang'=>$GLOBALS['spip_lang']);
65
66
67        if(intval($GLOBALS['visiteur_session'])){
68                $session=$GLOBALS['visiteur_session'];
69                $nom=$session['nom'];
70                $email=$session['email'];
71               
72        }
73
74        // valeurs d'initialisation
75        $valeurs['id_evenement'] = _request('id_evenement')?(
76                is_array(_request('id_evenement'))
77                        ?_request('id_evenement'):array(_request('id_evenement')))
78                :array();
79
80        $valeurs['id_objet_prix'] = _request('id_objet_prix')?(
81                is_array(_request('id_objet_prix'))
82                        ?_request('id_objet_prix'):array(_request('id_objet_prix')))
83                :array();
84                 
85           
86        $valeurs['id_auteur']=$id_auteur; 
87        $valeurs['nom']=$nom; 
88        $valeurs['email']=$email; 
89        $valeurs['enregistrer']=_request('enregistrer'); 
90        $valeurs['new_pass']=_request('new_pass');   
91        $valeurs['new_pass2']=_request('new_pass2'); 
92        $valeurs['new_login']=_request('new_login');       
93        $valeurs['statut'] = 'encours'; 
94        $valeurs['quantite'] = _request('quantite')?_request('quantite'):1; 
95           
96        //les champs extras auteur
97        include_spip('cextras_pipelines');
98       
99        if(function_exists('champs_extras_objet')){
100                //Charger les définitions pour la création des formulaires
101                $valeurs['champs_extras_auteurs']=champs_extras_objet(table_objet_sql('auteur'));
102                foreach($valeurs['champs_extras_auteurs'] as $key =>$value){
103                        $valeurs[$value['options']['nom']]=$session[$value['options']['nom']];
104                        $valeurs['champs_extras_auteurs'][$key]['options']['label']=extraire_multi($value['options']['label']);   
105
106                }
107        }
108         
109        $valeurs['_hidden'].='<input type="hidden" name="statut" value="'.$valeurs['statut'].'"/>'; 
110        $valeurs['_hidden'].='<input type="hidden" name="lang" value="'.$valeurs['lang'].'"/>';   
111        $valeurs['_hidden'].='<input type="hidden" name="quantite" value="'.$valeurs['quantite'].'"/>';   
112
113
114        return $valeurs;
115}
116
117function formulaires_reservation_verifier_dist($id='',$id_article=''){
118        $erreurs = array();
119        $email=_request('email');
120       
121        if(isset($GLOBALS['visiteur_session']['id_auteur'])){
122                $id_auteur=$GLOBALS['visiteur_session']['id_auteur'];
123        }
124               
125        if(_request('enregistrer'))  {
126                include_spip('inc/auth');
127                $obligatoires=array('nom','email','new_pass','new_login');
128                foreach($obligatoires AS $champ){
129                        if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
130                }
131                //Vérifier le login
132                if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)){
133                        $erreurs['new_login'] = $err;
134                        $erreurs['message_erreur'] .= $err;
135                }
136                 
137                //Vérifier les mp
138                if ($p = _request('new_pass')) {
139                        if ($p != _request('new_pass2')) {
140                                $erreurs['new_pass'] = _T('info_passes_identiques');
141                                $erreurs['message_erreur'] .= _T('info_passes_identiques');
142                        }
143                        elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'),$p, $id_auteur)){
144                                $erreurs['new_pass'] = $err;
145                        }
146                }
147        }
148        else{
149                $obligatoires=array('nom','email');
150               
151                if(test_plugin_actif('declinaisons')) array_push($obligatoires,'id_objet_prix');
152                else array_push($obligatoires,'id_evenement');
153   
154                foreach($obligatoires AS $champ){
155                        if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
156                }
157        }
158
159        if ($email){
160                include_spip('inc/filtres');
161                // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
162                if (!email_valide($email)){
163                        $id_auteur_session=isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:'';
164                        $erreurs['email'] = (($id_auteur==$id_auteur_session)?_T('form_email_non_valide'):_T('form_prop_indiquer_email'));
165                }
166                elseif(!$id_auteur){
167                        if($email_utilise=sql_getfetsel('email','spip_auteurs','email='.sql_quote($email))) $erreurs['email']=_T('reservation:erreur_email_utilise');
168                }
169        }
170
171        //les champs extras auteur
172        include_spip('cextras_pipelines');
173       
174        if(function_exists('champs_extras_objet')){
175                include_spip('inc/saisies');
176                //Charger les définitions pour la création des formulaires
177                $champs_extras_auteurs=champs_extras_objet(table_objet_sql('auteur'));
178                $erreurs=array_merge($erreurs,saisies_verifier($champs_extras_auteurs));
179        }
180        if (count($erreurs) AND !isset($erreurs['message_erreur'])) $erreurs['message_erreur'] = _T('reservation:message_erreur');
181        return $erreurs;
182}
183
184function formulaires_reservation_traiter_dist($id='',$id_article=''){   
185        $enregistrer=charger_fonction('reservation_enregistrer','inc');
186        if(isset($GLOBALS['visiteur_session']['id_auteur']))$id_auteur=$GLOBALS['visiteur_session']['id_auteur']; 
187                 
188        return $enregistrer($id,$id_article,$id_auteur);
189}
190
191?>
Note: See TracBrowser for help on using the repository browser.