source: spip-zone/_plugins_/reservation_evenement/trunk/inc/reservation_enregistrer.php

Last change on this file was 113976, checked in by abelass@…, 8 months ago

référence aussi pour l'espace privé

File size: 3.2 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(
9        $id = '',
10        $id_article = '',
11        $id_auteur = '',
12        $champs_extras_auteurs = '') {
13        include_spip('inc/config');
14        include_spip('inc/session');
15        include_spip('action/editer_reservation');
16
17        $config = lire_config('reservation_evenement');
18        $statut = $config['statut_defaut'] ? $config['statut_defaut'] : 'rien';
19        if ($statut == 'rien') {
20                $statut_defaut = charger_fonction('defaut', 'inc/statuts');
21                $statut = $statut_defaut($statut);
22        }
23
24        // Ajouter à l'environnement pour l'actualisation par la suite.
25        set_request('statut', $statut);
26
27
28        if (_request('enregistrer')) {
29                include_spip('actions/editer_auteur');
30
31                if (!$id_auteur) {
32                        include_spip('inc/auth');
33                        $res = formulaires_editer_objet_traiter('auteur', 'new', '', '', $retour, $config_fonc, $row, $hidden);
34                        $id_auteur = $res['id_auteur'];
35                        sql_updateq('spip_auteurs', array(
36                                'statut' => '6forum'
37                        ), 'id_auteur=' . $id_auteur);
38                        $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $id_auteur);
39                        auth_loger($auteur);
40                        set_request('id_auteur', $id_auteur);
41                }
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                                session_set($value['options']['nom'], _request($value['options']['nom']));
57                        }
58                }
59
60                // mettre les valeurs dans la session pour garder les éventuelles modifications
61                session_set('nom', _request('nom'));
62                session_set('email', _request('email'));
63
64                $valeurs = array_merge(array(
65                        'nom' => _request('nom'),
66                        'email' => _request('email')
67                ), $valeurs_extras);
68                sql_updateq('spip_auteurs', $valeurs, 'id_auteur=' . $id_auteur);
69
70                // Enlever pour ne pas les enregistrer dans la réservation
71                set_request('nom', '');
72                set_request('email', '');
73        }
74
75        // On actualise la réservation avec les données collectés.
76        $action = charger_fonction('editer_objet', 'action');
77        $reservation = $action('new', 'reservation');
78        $id_reservation = $reservation[0];
79
80        // On ajoute l'id à la session
81
82        if (!_request('id_reservation_source')) {
83                session_set('id_reservation', $id_reservation);
84        }
85
86        $message = '<div class="intro"><p>' . _T('reservation:reservation_enregistre') . '</p></div>';
87        $message .= '<div class="detail_reservation">';
88        $message .= '<h3>' . _T('reservation:details_reservation') . '</h3>';
89        $message .= recuperer_fond('inclure/reservation', array(
90                'id_reservation' => $id_reservation
91        ));
92        $message .= '</div>';
93
94        // Ivalider les caches
95        include_spip('inc/invalideur');
96        suivre_invalideur("id='reservation/$id_reservation'");
97        suivre_invalideur("id='reservations_detail/$id_reservations_detail'");
98        return array(
99                'id_reservation' => $id_reservation,
100                'message_ok' => $message,
101                'editable' => false
102        );
103}
Note: See TracBrowser for help on using the repository browser.