Ignore:
Timestamp:
Jan 11, 2017, 4:35:49 PM (4 years ago)
Author:
abelass@…
Message:
  • bug détection bon prix avec déclinaisons
  • garder les champs extras modifiés dans la session
  • mieux détecter les noms de statuts
File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/reservation_evenement/trunk/inc/reservation_enregistrer.php

    r98654 r101661  
    44if (! defined('_ECRIRE_INC_VERSION'))
    55        return;
    6        
     6
    77        // Enregistrement d'une réservation
    88function inc_reservation_enregistrer_dist($id = '', $id_article = '', $id_auteur = '', $champs_extras_auteurs = '') {
    99        include_spip('inc/config');
    1010        include_spip('inc/session');
    11        
     11
    1212        $config = lire_config('reservation_evenement');
    13         $statut = $config ['statut_defaut'] ? $config ['statut_defaut'] : 'rien';
     13        $statut = $config['statut_defaut'] ? $config['statut_defaut'] : 'rien';
    1414        if ($statut == 'rien') {
    1515                $statut_defaut = charger_fonction('defaut', 'inc/statuts');
    1616                $statut = $statut_defaut($statut);
    1717        }
    18        
     18
    1919        // Créer la réservation
    2020        $action = charger_fonction('editer_objet', 'action');
    21        
     21
    2222        // La référence
    2323        $fonction_reference = charger_fonction('reservation_reference', 'inc/');
    24        
     24
    2525        set_request('statut', $statut);
    2626        $reference = $fonction_reference($id_auteur);
    2727        set_request('reference', $reference);
    28        
     28
    2929        if (_request('enregistrer')) {
    3030                include_spip('actions/editer_auteur');
    31                
    32                 if (!$id_auteur) {
     31
     32                if (! $id_auteur) {
    3333                        include_spip('inc/auth');
    3434                        $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'
     35                        $id_auteur = $res['id_auteur'];
     36                        sql_updateq('spip_auteurs', array(
     37                                'statut' => '6forum'
    3838                        ), 'id_auteur=' . $id_auteur);
    3939                        $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $id_auteur);
     
    4141                        set_request('id_auteur', $id_auteur);
    4242                }
    43         } elseif (intval($id_auteur) and _request('modifier_donnees_auteur')) {
     43        }
     44        elseif (intval($id_auteur) and _request('modifier_donnees_auteur')) {
    4445                // les champs extras auteur
    4546                include_spip('cextras_pipelines');
    46                 $valeurs_extras = array ();
    47                
    48                 if (!is_array($champs_extras_auteurs) and function_exists('champs_extras_objet')) {
     47                $valeurs_extras = array();
     48
     49                if (! is_array($champs_extras_auteurs) and function_exists('champs_extras_objet')) {
    4950                        // Charger les définitions pour la création des formulaires
    5051                        $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
     
    5253
    5354                if (is_array($champs_extras_auteurs)) {
    54                         foreach ( $champs_extras_auteurs as $value ) {
    55                                 $valeurs_extras [$value ['options'] ['nom']] = _request($value ['options'] ['nom']);
     55                        foreach ($champs_extras_auteurs as $value) {
     56                                $valeurs_extras[$value['options']['nom']] = _request($value['options']['nom']);
     57                                session_set($value['options']['nom'], _request($value['options']['nom']));
    5658                        }
    5759                }
     
    5961                session_set('nom', _request('nom'));
    6062                session_set('email', _request('email'));
    61                
    62                 $valeurs = array_merge(array (
    63                                 'nom' => _request('nom'),
    64                                 'email' => _request('email')
     63
     64                $valeurs = array_merge(array(
     65                        'nom' => _request('nom'),
     66                        'email' => _request('email')
    6567                ), $valeurs_extras);
    6668                sql_updateq('spip_auteurs', $valeurs, 'id_auteur=' . $id_auteur);
    67                
     69
    6870                // Enlever pour ne pas les enregistrer dans la réservation
    6971                set_request('nom', '');
    7072                set_request('email', '');
    7173        }
    72        
     74
    7375        $id_reservation = $action('new', 'reservation');
    74        
     76
    7577        // On ajoute l'id à la session
    76         $id_reservation = $id_reservation [0];
     78        $id_reservation = $id_reservation[0];
    7779        if (! _request('id_reservation_source'))
    7880                session_set('id_reservation', $id_reservation);
    79        
     81
    8082        $message = '<p>' . _T('reservation:reservation_enregistre') . '</p>';
    8183        $message .= '<h3>' . _T('reservation:details_reservation') . '</h3>';
    82         $message .= recuperer_fond('inclure/reservation', array (
    83                         'id_reservation' => $id_reservation
     84        $message .= recuperer_fond('inclure/reservation', array(
     85                'id_reservation' => $id_reservation
    8486        ));
    85        
     87
    8688        // Ivalider les caches
    8789        include_spip('inc/invalideur');
    8890        suivre_invalideur("id='reservation/$id_reservation'");
    8991        suivre_invalideur("id='reservations_detail/$id_reservations_detail'");
    90         return array (
    91                         'message_ok' => $message,
    92                         'editable' => false
     92        return array(
     93                'message_ok' => $message,
     94                'editable' => false
    9395        );
    9496}
Note: See TracChangeset for help on using the changeset viewer.