source: spip-zone/_plugins_/reservation_evenement/branches/v1/inc/reservation_enregistrer.php @ 98655

Last change on this file since 98655 was 98655, checked in by abelass@…, 5 years ago
  • modifier les données perso seulement si souhaité
  • lanque_choisi pour éviter des erreurs mysql
  • les noms pas le labels pour les champs extras
  • bug suite au reformatage
  • salvatore
File size: 3.1 KB
Line 
1<?php
2
3// Sécurité
4if (! defined('_ECRIRE_INC_VERSION'))
5        return;
6       
7        // Enregistrement d'une réservation
8function inc_reservation_enregistrer_dist($id = '', $id_article = '', $id_auteur = '', $champs_extras_auteurs = '') {
9        include_spip('inc/config');
10        include_spip('inc/session');
11       
12        $config = lire_config('reservation_evenement');
13        $statut = $config ['statut_defaut'] ? $config ['statut_defaut'] : 'rien';
14        if ($statut == 'rien') {
15                $statut_defaut = charger_fonction('defaut', 'inc/statuts');
16                $statut = $statut_defaut($statut);
17        }
18       
19        // Créer la réservation
20        $action = charger_fonction('editer_objet', 'action');
21       
22        // La référence
23        $fonction_reference = charger_fonction('reservation_reference', 'inc/');
24       
25        set_request('statut', $statut);
26        $reference = $fonction_reference($id_auteur);
27        set_request('reference', $reference);
28       
29        if (_request('enregistrer')) {
30                include_spip('actions/editer_auteur');
31               
32                if (!$id_auteur) {
33                        include_spip('inc/auth');
34                        $res = formulaires_editer_objet_traiter('auteur', 'new', '', '', $retour, $config_fonc, $row, $hidden);
35                        $id_auteur = $res ['id_auteur'];
36                        sql_updateq('spip_auteurs', array (
37                                        'statut' => '6forum' 
38                        ), 'id_auteur=' . $id_auteur);
39                        $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $id_auteur);
40                        auth_loger($auteur);
41                        set_request('id_auteur', $id_auteur);
42                }
43        } elseif (intval($id_auteur) and _request('modifier_donnees_auteur')) {
44                // les champs extras auteur
45                include_spip('cextras_pipelines');
46                $valeurs_extras = array ();
47               
48                if (!is_array($champs_extras_auteurs) and function_exists('champs_extras_objet')) {
49                        // Charger les définitions pour la création des formulaires
50                        $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
51                }
52
53                if (is_array($champs_extras_auteurs)) {
54                        foreach ( $champs_extras_auteurs as $value ) {
55                                $valeurs_extras [$value ['options'] ['nom']] = _request($value ['options'] ['nom']);
56                        }
57                }
58                // mettre les valeurs dans la session pour garder les éventuelles modifications
59                session_set('nom', _request('nom'));
60                session_set('email', _request('email'));
61               
62                $valeurs = array_merge(array (
63                                'nom' => _request('nom'),
64                                'email' => _request('email') 
65                ), $valeurs_extras);
66                sql_updateq('spip_auteurs', $valeurs, 'id_auteur=' . $id_auteur);
67               
68                // Enlever pour ne pas les enregistrer dans la réservation
69                set_request('nom', '');
70                set_request('email', '');
71        }
72       
73        $id_reservation = $action('new', 'reservation');
74       
75        // On ajoute l'id à la session
76        $id_reservation = $id_reservation [0];
77        if (! _request('id_reservation_source'))
78                session_set('id_reservation', $id_reservation);
79       
80        $message = '<p>' . _T('reservation:reservation_enregistre') . '</p>';
81        $message .= '<h3>' . _T('reservation:details_reservation') . '</h3>';
82        $message .= recuperer_fond('inclure/reservation', array (
83                        'id_reservation' => $id_reservation 
84        ));
85       
86        // Ivalider les caches
87        include_spip('inc/invalideur');
88        suivre_invalideur("id='reservation/$id_reservation'");
89        suivre_invalideur("id='reservations_detail/$id_reservations_detail'");
90        return array (
91                        'message_ok' => $message,
92                        'editable' => false 
93        );
94}
Note: See TracBrowser for help on using the repository browser.