source: spip-zone/_plugins_/reservation_evenement/branches/v1/formulaires/reservation.php @ 88150

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

Appliquer les zones aux différent points utiles

  • Property svn:executable set to *
File size: 5.9 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           
95        //les champs extras auteur
96        include_spip('cextras_pipelines');
97       
98        if(function_exists('champs_extras_objet')){
99                //Charger les définitions pour la création des formulaires
100                $valeurs['champs_extras_auteurs']=champs_extras_objet(table_objet_sql('auteur'));
101                foreach($valeurs['champs_extras_auteurs'] as $key =>$value){
102                        $valeurs[$value['options']['nom']]=$session[$value['options']['nom']];
103                        $valeurs['champs_extras_auteurs'][$key]['options']['label']=extraire_multi($value['options']['label']);   
104
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
112
113        return $valeurs;
114}
115
116function formulaires_reservation_verifier_dist($id='',$id_article=''){
117        $erreurs = array();
118        $email=_request('email');
119       
120        if(isset($GLOBALS['visiteur_session']['id_auteur'])){
121                $id_auteur=$GLOBALS['visiteur_session']['id_auteur'];
122        }
123               
124        if(_request('enregistrer'))  {
125                include_spip('inc/auth');
126                $obligatoires=array('nom','email','new_pass','new_login');
127                foreach($obligatoires AS $champ){
128                        if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
129                }
130                //Vérifier le login
131                if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)){
132                        $erreurs['new_login'] = $err;
133                        $erreurs['message_erreur'] .= $err;
134                }
135                 
136                //Vérifier les mp
137                if ($p = _request('new_pass')) {
138                        if ($p != _request('new_pass2')) {
139                                $erreurs['new_pass'] = _T('info_passes_identiques');
140                                $erreurs['message_erreur'] .= _T('info_passes_identiques');
141                        }
142                        elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'),$p, $id_auteur)){
143                                $erreurs['new_pass'] = $err;
144                        }
145                }
146        }
147        else{
148                $obligatoires=array('nom','email');
149               
150                if(test_plugin_actif('declinaisons')) array_push($obligatoires,'id_objet_prix');
151                else array_push($obligatoires,'id_evenement');
152   
153                foreach($obligatoires AS $champ){
154                        if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
155                }
156        }
157
158        if ($email){
159                include_spip('inc/filtres');
160                // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
161                if (!email_valide($email)){
162                        $id_auteur_session=isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:'';
163                        $erreurs['email'] = (($id_auteur==$id_auteur_session)?_T('form_email_non_valide'):_T('form_prop_indiquer_email'));
164                }
165                elseif(!$id_auteur){
166                        if($email_utilise=sql_getfetsel('email','spip_auteurs','email='.sql_quote($email))) $erreurs['email']=_T('reservation:erreur_email_utilise');
167                }
168        }
169
170        //les champs extras auteur
171        include_spip('cextras_pipelines');
172       
173        if(function_exists('champs_extras_objet')){
174                include_spip('inc/saisies');
175                //Charger les définitions pour la création des formulaires
176                $champs_extras_auteurs=champs_extras_objet(table_objet_sql('auteur'));
177                $erreurs=array_merge($erreurs,saisies_verifier($champs_extras_auteurs));
178        }
179        if (count($erreurs) AND !isset($erreurs['message_erreur'])) $erreurs['message_erreur'] = _T('reservation:message_erreur');
180        return $erreurs;
181}
182
183function formulaires_reservation_traiter_dist($id='',$id_article=''){   
184        $enregistrer=charger_fonction('reservation_enregistrer','inc');
185        if(isset($GLOBALS['visiteur_session']['id_auteur']))$id_auteur=$GLOBALS['visiteur_session']['id_auteur']; 
186                 
187        return $enregistrer($id,$id_article,$id_auteur);
188}
189
190?>
Note: See TracBrowser for help on using the repository browser.