Changeset 111001 in spip-zone


Ignore:
Timestamp:
Jul 4, 2018, 12:50:33 PM (13 months ago)
Author:
abelass
Message:

ne pas compromettre le flux

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/reservations_multiples/trunk/reservations_multiples_pipelines.php

    r111000 r111001  
    152152                $config = reservations_multiples_config();
    153153
    154                 // Si inscription de plusieurs personnes
    155                 if ($config['multiple_personnes'] == 'on') {
    156 
    157                         // Enregistrement des champs additionnels
    158                         $enregistrer = charger_fonction('reservation_enregistrer', 'inc');
    159 
    160                         // Lister les messages de retour
    161                         if (function_exists('champs_extras_objet')) {
    162                                 $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
     154                // Enregistrement des champs additionnels
     155                $enregistrer = charger_fonction('reservation_enregistrer', 'inc');
     156
     157                // Lister les messages de retour
     158                if (function_exists('champs_extras_objet')) {
     159                        $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
     160                }
     161                else {
     162                        $champs_extras_auteurs = array();
     163                }
     164
     165                        // ne pas créer de compte spip
     166                set_request('enregistrer', '');
     167
     168                // inscription aux mailinglistes
     169                if (test_plugin_actif('reservations_mailsubscribers')) {
     170                        $inscription = charger_fonction('inscription_mailinglinglistes', 'inc');
     171                }
     172
     173                // Ajouter les références à la réservation d'origine
     174                set_request('id_reservation_source', $flux['data']['id_reservation']);
     175                set_request('type_lien', 'multiple_personnes');
     176                set_request('origine_lien', 'reservations_multiples');
     177
     178
     179                // Enregistrer les réservations
     180                $message_original = $flux['data']['message_ok'];
     181                $message_ok = array();
     182                $i = 1;
     183                while ($i <= $nombre) {
     184                        set_request('gratuit', FALSE);
     185                        // recupérer les champs par défaut
     186                        $nr = $i++;
     187                        $email = _request('email_' . $nr);
     188                        set_request('nom', _request('nom_' . $nr));
     189                        set_request('email', $email);
     190                        set_request('id_auteur', '');
     191                        $nom = _request('nom');
     192
     193                        // Vérifier les champs extras
     194                        foreach ($champs_extras_auteurs as $value) {
     195
     196                                // récupérer les champs extras
     197                                set_request($value['options']['nom'], _request($value['options']['nom'] . '_' . $nr));
     198                        }
     199
     200                        set_request('nr_auteur', $nr);
     201
     202                        // Enregistrer
     203                        $flux['data']['multiple_personne'][$i] = $enregistrer('', '', '', $champs_extras_auteurs);
     204                        $id_reservation = $flux['data']['id_reservation'];
     205                        preg_match('/<table(.*?)<\/table>/s', $flux['data']['message_ok'], $match);
     206                        $message = "<strong>$nom</strong>" . $match['0'];
     207                        $nr = 0;
     208
     209                        // Inscription aux mailinglistes
     210                        if (test_plugin_actif('reservations_mailsubscribers')) {
     211                                $inscription($email);
     212                        }
     213
     214                        // Envoyer une notification.
     215                        if(test_plugin_actif('reservation_bank') &&
     216                                        $notifications = charger_fonction('notifications', 'inc', true) AND
     217                                        !_request('gratuit')) {
     218                                include_spip('inc/config');
     219                                $config_reservation_evenement = lire_config('reservation_evenement');
     220                                $preceder_formulaire = lire_config('reservation_bank/preceder_formulaire');
     221                                $id_transaction = rb_inserer_transaction($id_reservation);
     222                                $quand = isset($config['quand']) ? $config['quand'] : array();
     223
     224                                $row = sql_fetsel('statut,date,id_auteur,email,lang,donnees_auteur', 'spip_reservations', 'id_reservation=' . intval($id_reservation));
     225                                $statut = $row['statut'];
     226
     227                                //Déterminer la langue pour les notifications
     228                                $lang = isset($row['lang']) ? $row['lang'] : lire_config('langue_site');
     229                                lang_select($lang);
     230
     231                                // Determiner l'expediteur
     232                                $options = array(
     233                                'statut' => $statut,
     234                                'lang' => $lang
     235                                );
     236                                if ($config_reservation_evenement['expediteur'] != "facteur") {
     237                                        $options['expediteur'] = $config_reservation_evenement['expediteur_' . $config_reservation_evenement['expediteur']];
     238                                }
     239
     240
     241                                // Envoyer au vendeur et au client
     242                                if ($config_reservation_evenement['client'] && !in_array($statut, $quand)) {
     243                                        if (intval($row['id_auteur']) AND $row['id_auteur'] > 0) {
     244                                                $options['email'] = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . $row['id_auteur']);
     245                                        }
     246                                        else {
     247                                                $options['email'] = $row['email'];
     248                                        }
     249
     250                                        $notifications('reservation_client', $id_reservation, $options);
     251
     252                                        $lien_paiement = recuperer_fond('inclure/lien_payer', array('id_transaction'=> $id_transaction));
     253                                        if ($preceder_formulaire) {
     254                                                $message = $lien_paiement . $message;
     255                                        }
     256                                        else {
     257                                                $message .= $lien_paiement;
     258                                        }
     259                                }
     260                        }
     261                        $message_ok[] = $message;
     262                }
     263                // Recopiler le messages de retour
     264                $m = '';
     265                if (count($message_ok) > 0 and $count = count($message_ok)) {
     266                        if ($count == 1) {
     267                                $titre = _T('reservations_multiples:reservation_supplementaire');
    163268                        }
    164269                        else {
    165                                 $champs_extras_auteurs = array();
    166                         }
    167 
    168                                 // ne pas créer de compte spip
    169                         set_request('enregistrer', '');
    170 
    171                         // inscription aux mailinglistes
    172                         if (test_plugin_actif('reservations_mailsubscribers')) {
    173                                 $inscription = charger_fonction('inscription_mailinglinglistes', 'inc');
    174                         }
    175 
    176                         // Ajouter les références à la réservation d'origine
    177                         set_request('id_reservation_source', $flux['data']['id_reservation']);
    178                         set_request('type_lien', 'multiple_personnes');
    179                         set_request('origine_lien', 'reservations_multiples');
    180 
    181 
    182                         // Enregistrer les réservations
    183                         $message_original = $flux['data']['message_ok'];
    184                         $message_ok = array();
    185                         $i = 1;
    186                         while ($i <= $nombre) {
    187                                 set_request('gratuit', FALSE);
    188                                 // recupérer les champs par défaut
    189                                 $nr = $i++;
    190                                 $email = _request('email_' . $nr);
    191                                 set_request('nom', _request('nom_' . $nr));
    192                                 set_request('email', $email);
    193                                 set_request('id_auteur', '');
    194                                 $nom = _request('nom');
    195 
    196                                 // Vérifier les champs extras
    197                                 foreach ($champs_extras_auteurs as $value) {
    198 
    199                                         // récupérer les champs extras
    200                                         set_request($value['options']['nom'], _request($value['options']['nom'] . '_' . $nr));
    201                                 }
    202 
    203                                 set_request('nr_auteur', $nr);
    204 
    205                                 // Enregistrer
    206                                 $flux['data'] = $enregistrer('', '', '', $champs_extras_auteurs);
    207                                 $id_reservation = $flux['data']['id_reservation'];
    208                                 preg_match('/<table(.*?)<\/table>/s', $flux['data']['message_ok'], $match);
    209                                 $message = "<strong>$nom</strong>" . $match['0'];
    210                                 $nr = 0;
    211 
    212                                 // Inscription aux mailinglistes
    213                                 if (test_plugin_actif('reservations_mailsubscribers')) {
    214                                         $inscription($email);
    215                                 }
    216 
    217                                 // Envoyer une notification.
    218                                 if(test_plugin_actif('reservation_bank') &&
    219                                                 $notifications = charger_fonction('notifications', 'inc', true) AND
    220                                                 !_request('gratuit')) {
    221                                         include_spip('inc/config');
    222                                         $config_reservation_evenement = lire_config('reservation_evenement');
    223                                         $preceder_formulaire = lire_config('reservation_bank/preceder_formulaire');
    224                                         $id_transaction = rb_inserer_transaction($id_reservation);
    225                                         $quand = isset($config['quand']) ? $config['quand'] : array();
    226 
    227                                         $row = sql_fetsel('statut,date,id_auteur,email,lang,donnees_auteur', 'spip_reservations', 'id_reservation=' . intval($id_reservation));
    228                                         $statut = $row['statut'];
    229 
    230                                         //Déterminer la langue pour les notifications
    231                                         $lang = isset($row['lang']) ? $row['lang'] : lire_config('langue_site');
    232                                         lang_select($lang);
    233 
    234                                         // Determiner l'expediteur
    235                                         $options = array(
    236                                         'statut' => $statut,
    237                                         'lang' => $lang
    238                                         );
    239                                         if ($config_reservation_evenement['expediteur'] != "facteur") {
    240                                                 $options['expediteur'] = $config_reservation_evenement['expediteur_' . $config_reservation_evenement['expediteur']];
    241                                         }
    242 
    243 
    244                                         // Envoyer au vendeur et au client
    245                                         if ($config_reservation_evenement['client'] && !in_array($statut, $quand)) {
    246                                                 if (intval($row['id_auteur']) AND $row['id_auteur'] > 0) {
    247                                                         $options['email'] = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . $row['id_auteur']);
    248                                                 }
    249                                                 else {
    250                                                         $options['email'] = $row['email'];
    251                                                 }
    252 
    253                                                 $notifications('reservation_client', $id_reservation, $options);
    254 
    255                                                 $lien_paiement = recuperer_fond('inclure/lien_payer', array('id_transaction'=> $id_transaction));
    256                                                 if ($preceder_formulaire) {
    257                                                         $message = $lien_paiement . $message;
    258                                                 }
    259                                                 else {
    260                                                         $message .= $lien_paiement;
    261                                                 }
    262                                         }
    263                                 }
    264                                 $message_ok[] = $message;
    265                         }
    266                         // Recopiler le messages de retour
    267                         $m = '';
    268                         if (count($message_ok) > 0 and $count = count($message_ok)) {
    269                                 if ($count == 1) {
    270                                         $titre = _T('reservations_multiples:reservation_supplementaire');
    271                                 }
    272                                 else {
    273                                         $titre = _T('reservations_multiples:reservations_supplementaires');
    274                                 }
    275                                 $m = '<div class="reservations_supplementaires"><h3>' . $titre . '</h3>';
    276                                 foreach ($message_ok as $message) {
    277                                         $m .= $message;
    278                                         $nr++;
    279                                 }
    280                                 $m .= '</div>';
    281                         }
    282 
    283                         $flux['data']['message_ok'] = $message_original . $m;
    284                 }
     270                                $titre = _T('reservations_multiples:reservations_supplementaires');
     271                        }
     272                        $m = '<div class="reservations_supplementaires"><h3>' . $titre . '</h3>';
     273                        foreach ($message_ok as $message) {
     274                                $m .= $message;
     275                                $nr++;
     276                        }
     277                        $m .= '</div>';
     278                }
     279
     280                $flux['data']['message_ok'] = $message_original . $m;
     281
    285282        }
    286283        return $flux;
Note: See TracChangeset for help on using the changeset viewer.