Changeset 89541 in spip-zone


Ignore:
Timestamp:
May 19, 2015, 5:01:56 PM (4 years ago)
Author:
abelass@…
Message:
  • se loguer après un enregistrement
  • redirection pour le formulaire reservation
Location:
_plugins_/reservation_evenement/branches/v1
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/reservation_evenement/branches/v1/action/editer_reservation.php

    r89526 r89541  
    11<?php
    2 if (!defined('_ECRIRE_INC_VERSION')) return;
    3 
    4 function reservation_inserer($id_parent=null, $set=null) {
     2if (!defined('_ECRIRE_INC_VERSION'))
     3        return;
     4
     5function reservation_inserer($id_parent = null, $set = null) {
    56        $table_sql = table_objet_sql('reservation');
    67        $champs = array();
     
    1213
    1314        // Envoyer aux plugins
    14         $champs = pipeline('pre_insertion',
    15                 array(
     15        $champs = pipeline('pre_insertion', array(
     16                'args' => array('table' => $table_sql, ),
     17                'data' => $champs
     18        ));
     19
     20        $id = sql_insertq($table_sql, $champs);
     21
     22        if ($id) {
     23                pipeline('post_insertion', array(
    1624                        'args' => array(
    1725                                'table' => $table_sql,
     26                                'id_objet' => $id,
    1827                        ),
    1928                        'data' => $champs
    20                 )
    21         );
    22        
    23         $id = sql_insertq($table_sql, $champs);
    24        
    25         // On pas l'id dans la session 
    26         session_set('id_reservation', $id);
    27 
    28         if ($id){
    29                 pipeline('post_insertion',
    30                         array(
    31                                 'args' => array(
    32                                         'table' => $table_sql,
    33                                         'id_objet' => $id,
    34                                 ),
    35                                 'data' => $champs
    36                         )
    37                 );
     29                ));
    3830        }
    3931        return $id;
    4032}
    4133
    42 function reservation_instituer($id_reservation, $c, $calcul_rub=true) {
     34function reservation_instituer($id_reservation, $c, $calcul_rub = true) {
    4335        $table_sql = table_objet_sql('reservation');
    44         $trouver_table = charger_fonction('trouver_table','base');
     36        $trouver_table = charger_fonction('trouver_table', 'base');
    4537
    4638        include_spip('inc/autoriser');
    4739        include_spip('inc/rubriques');
    4840        include_spip('inc/modifier');
    49         include_spip('inc/config');     
     41        include_spip('inc/config');
    5042        $config = lire_config('reservation_evenement');
    51        
    52         $row = sql_fetsel('statut,date,id_auteur,email,lang','spip_reservations','id_reservation='.intval($id_reservation));
     43
     44        $row = sql_fetsel('statut,date,id_auteur,email,lang', 'spip_reservations', 'id_reservation=' . intval($id_reservation));
    5345        $statut_ancien = $statut = $row['statut'];
    5446        $date_ancienne = $date = $row['date'];
    55        
    56        
     47
    5748        $d = isset($c['date']) ? $c['date'] : null;
    5849        $s = isset($c['statut']) ? $c['statut'] : $statut;
    59        
    6050
    6151        $champs = array();
    6252        // cf autorisations dans inc/instituer_objet
    6353        if ($s != $statut OR ($d AND $d != $date)) {
    64                 if (autoriser('modifier','reservation', $id_reservation))
     54                if (autoriser('modifier', 'reservation', $id_reservation))
    6555                        $statut = $champs['statut'] = $s;
    6656                else
     
    7262                // En cas de proposition d'un objet (mais pas depublication), idem
    7363                if ($champ_date) {
    74                         if ($champs['statut'] == 'publie'
    75                          OR ($champs['statut'] == 'prop' AND !in_array($statut_ancien, array('publie', 'prop')))
    76                          OR $d
    77                         ) {
    78                                 if ($d OR strtotime($d=$date)>time())
     64                        if ($champs['statut'] == 'publie' OR ($champs['statut'] == 'prop' AND !in_array($statut_ancien, array(
     65                                'publie',
     66                                'prop'
     67                        ))) OR $d) {
     68                                if ($d OR strtotime($d = $date) > time())
    7969                                        $champs[$champ_date] = $date = $d;
    8070                                else
     
    8474        }
    8575
    86     //les champs extras auteur
    87     include_spip('cextras_pipelines');
    88     $valeurs_extras=array();
    89    
    90 
    91     if(function_exists('champs_extras_objet')){
    92         //Charger les définitions pour la création des formulaires
    93         $champs_extras_auteurs=champs_extras_objet(table_objet_sql('auteur'));
    94        
    95         if(is_array($champs_extras_auteurs)){
    96             foreach( $champs_extras_auteurs as $value){
    97                 $valeurs_extras[$value['options']['nom']]=_request($value['options']['nom']);
    98             }
    99         }
    100        
    101         $champs['donnees_auteur']=serialize( $valeurs_extras);
    102     }
     76        //les champs extras auteur
     77        include_spip('cextras_pipelines');
     78        $valeurs_extras = array();
     79
     80        if (function_exists('champs_extras_objet')) {
     81                //Charger les définitions pour la création des formulaires
     82                $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
     83
     84                if (is_array($champs_extras_auteurs)) {
     85                        foreach ($champs_extras_auteurs as $value) {
     86                                $valeurs_extras[$value['options']['nom']] = _request($value['options']['nom']);
     87                        }
     88                }
     89
     90                $champs['donnees_auteur'] = serialize($valeurs_extras);
     91        }
    10392
    10493        // Envoyer aux plugins
    105         $champs = pipeline('pre_edition',
    106                 array(
    107                         'args' => array(
    108                                 'table' => 'spip_reservations',
    109                                 'id_reservation' => $id_reservation,
    110                                 'action'=>'instituer',
    111                                 'statut_ancien' => $statut_ancien,
    112                                 'date_ancienne' => $date_ancienne,
    113                         ),
    114                         'data' => $champs
    115                 )
    116         );
    117 
    118         if (!count($champs)) return '';
    119        
     94        $champs = pipeline('pre_edition', array(
     95                'args' => array(
     96                        'table' => 'spip_reservations',
     97                        'id_reservation' => $id_reservation,
     98                        'action' => 'instituer',
     99                        'statut_ancien' => $statut_ancien,
     100                        'date_ancienne' => $date_ancienne,
     101                ),
     102                'data' => $champs
     103        ));
     104
     105        if (!count($champs))
     106                return '';
     107
    120108        // Envoyer les modifs.
    121         objet_editer_heritage('reservation', $id_reservation,'', $statut_ancien, $champs);
     109        objet_editer_heritage('reservation', $id_reservation, '', $statut_ancien, $champs);
    122110
    123111        // Invalider les caches
     
    125113        suivre_invalideur("id='reservation/$id_reservation'");
    126114
    127 
    128115        // Pipeline
    129         pipeline('post_edition',
    130                 array(
    131                         'args' => array(
    132                                 'table' => 'spip_reservations',
    133                                 'id_reservation' => $id_reservation,
    134                                 'action'=>'instituer',
    135                                 'statut_ancien' => $statut_ancien,
    136                                 'date_ancienne' => $date_ancienne,
    137                                 'id_parent_ancien' => $id_rubrique,
    138                         ),
    139                         'data' => $champs
    140                 )
     116        pipeline('post_edition', array(
     117                'args' => array(
     118                        'table' => 'spip_reservations',
     119                        'id_reservation' => $id_reservation,
     120                        'action' => 'instituer',
     121                        'statut_ancien' => $statut_ancien,
     122                        'date_ancienne' => $date_ancienne,
     123                        'id_parent_ancien' => $id_rubrique,
     124                ),
     125                'data' => $champs
     126        ));
     127
     128        // Les traitements spécifiques
     129
     130        $action = charger_fonction('editer_objet', 'action');
     131        $quantite = _request('quantite');
     132        $set = array(
     133                'id_reservation' => $id_reservation,
     134                'statut' => $statut
    141135        );
    142        
    143        
    144         // Les traitements spécifiques
    145 
    146 
    147         $action=charger_fonction('editer_objet','action');
    148         $quantite=_request('quantite');
    149         $set=array(
    150                 'id_reservation'=>$id_reservation,
    151                 'statut'=>$statut
    152         );
    153        
     136
    154137        // Gérer les détails des réservations
    155         $evenements=_request('id_evenement');
     138        $evenements = _request('id_evenement');
    156139
    157140        // Si les déclinaisons sont actives on récupère les évenements via le prix
    158          if(test_plugin_actif('declinaisons')){
    159                  $evenements=array();
    160                 if($id_prix_objet=_request('id_objet_prix')){
    161                         foreach(array_keys($id_prix_objet )AS $id_evenement){
    162                                 $evenements[]=$id_evenement;
     141        if (test_plugin_actif('declinaisons')) {
     142                $evenements = array();
     143                if ($id_prix_objet = _request('id_objet_prix')) {
     144                        foreach (array_keys($id_prix_objet ) AS $id_evenement) {
     145                                $evenements[] = $id_evenement;
    163146                        }
    164147                }
    165          }
     148        }
    166149        // Si on n'est pas dans le cas d'une création, on récupère les détails attachées à la réservation
    167         if(!is_array($evenements) OR (is_array($evenements) AND count($evenements)==0)){
    168                        
    169                 $evenements=array();
    170                 $sql=sql_select('id_evenement','spip_reservations_details','id_reservation='. $id_reservation);
    171                 while($data=sql_fetch($sql)){
    172                         $evenements[]=$data['id_evenement'];
    173                 }
    174         }
    175         else  {
    176                 $set['evenements']=$evenements;
    177                 set_request('evenements',$evenements);
     150        if (!is_array($evenements) OR (is_array($evenements) AND count($evenements) == 0)) {
     151
     152                $evenements = array();
     153                $sql = sql_select('id_evenement', 'spip_reservations_details', 'id_reservation=' . $id_reservation);
     154                while ($data = sql_fetch($sql)) {
     155                        $evenements[] = $data['id_evenement'];
     156                }
     157        } else {
     158                $set['evenements'] = $evenements;
     159                set_request('evenements', $evenements);
    178160        }
    179161        // Pour chaque évènement on crée un détail de la réservation
    180162
    181         foreach($evenements AS  $id_evenement){
     163        foreach ($evenements AS $id_evenement) {
    182164                // Si aucun détail n'est attaché à l'évènement, on le crée
    183                 if(!$reservations_detail=sql_fetsel('*','spip_reservations_details','id_reservation='.$id_reservation.' AND id_evenement='.$id_evenement)) {
    184                         $id_reservations_detail='new';
    185                         $set['id_prix_objet']=$id_prix_objet[$id_evenement];
    186                 }
    187                 else $id_reservations_detail=$reservations_detail['id_reservations_detail'];
    188                
     165                if (!$reservations_detail = sql_fetsel('*', 'spip_reservations_details', 'id_reservation=' . $id_reservation . ' AND id_evenement=' . $id_evenement)) {
     166                        $id_reservations_detail = 'new';
     167                        $set['id_prix_objet'] = $id_prix_objet[$id_evenement];
     168                } else
     169                        $id_reservations_detail = $reservations_detail['id_reservations_detail'];
     170
    189171                // Pour l'enregistrement
    190                 $set['id_evenement']=$id_evenement;
    191 
    192                 // Eviter l'envoi d'une notification pour chaque détail   
    193                 set_request('envoi_separe_actif','non');                       
    194 
    195                 $detail=$action($id_reservations_detail,'reservations_detail',$set);
    196                
     172                $set['id_evenement'] = $id_evenement;
     173
     174                // Eviter l'envoi d'une notification pour chaque détail
     175                set_request('envoi_separe_actif', 'non');
     176
     177                $detail = $action($id_reservations_detail, 'reservations_detail', $set);
     178
    197179        }
    198180
    199181        // Notifications
    200182
    201         if ((!$statut_ancien OR $statut != $statut_ancien ) &&
    202                  (isset($config['activer'])) &&
    203                  (isset($config['quand']) && is_array($config['quand']) && in_array($statut,$config['quand'])) &&
    204                  ($notifications = charger_fonction('notifications', 'inc', true))
    205                 ) {
    206            //Déterminer la langue pour les notifications       
    207            $lang=isset($row['lang'])?$row['lang']:lire_config('langue_site');
    208            lang_select($lang); 
     183        if ((!$statut_ancien OR $statut != $statut_ancien) && (isset($config['activer'])) && (isset($config['quand']) && is_array($config['quand']) && in_array($statut, $config['quand'])) && ($notifications = charger_fonction('notifications', 'inc', true))) {
     184                //Déterminer la langue pour les notifications
     185                $lang = isset($row['lang']) ? $row['lang'] : lire_config('langue_site');
     186                lang_select($lang);
    209187                // Determiner l'expediteur
    210                 $options = array('statut'=>$statut,'lang'=>$lang);
    211                 if( $config['expediteur'] != "facteur" )
    212                         $options['expediteur'] = $config['expediteur_'.$config['expediteur']];
     188                $options = array(
     189                        'statut' => $statut,
     190                        'lang' => $lang
     191                );
     192                if ($config['expediteur'] != "facteur")
     193                        $options['expediteur'] = $config['expediteur_' . $config['expediteur']];
    213194
    214195                // Envoyer au vendeur et au client
    215196                $notifications('reservation_vendeur', $id_reservation, $options);
    216                 if($config['client']){
     197                if ($config['client']) {
    217198                        //$row['email']=trim($row['email']);
    218                         if(intval($row['id_auteur']) AND $row['id_auteur']>0)$options['email']=sql_getfetsel('email','spip_auteurs','id_auteur='.$row['id_auteur']);
    219                         else $options['email']=$row['email'];
    220                                
     199                        if (intval($row['id_auteur']) AND $row['id_auteur'] > 0)
     200                                $options['email'] = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . $row['id_auteur']);
     201                        else
     202                                $options['email'] = $row['email'];
     203
    221204                        $notifications('reservation_client', $id_reservation, $options);
    222205                }
    223                        
    224         }
    225 
    226         return ''; // pas d'erreur
     206
     207        }
     208
     209        return '';
     210        // pas d'erreur
    227211}
  • _plugins_/reservation_evenement/branches/v1/formulaires/inc-reservation_connection.html

    r82555 r89541  
    11<ul class="identifiants">
    2     [(#SESSION{id_auteur}|non)
     2    [(#SESSION{id_auteur}|>{0}|non)
    33    <li class="login">
    44        #SET{url,#URL_PAGE{login}|parametre_url{url,#SELF}}
     
    1616   
    1717       <!--extra_connection1-->
    18     [(#SESSION{id_auteur}|non)
     18    [(#SESSION{id_auteur}|>{0}|non)
    1919       
    2020    <li>
  • _plugins_/reservation_evenement/branches/v1/formulaires/reservation.php

    r89236 r89541  
    88 */
    99
    10 if (!defined("_ECRIRE_INC_VERSION")) return;
     10if (!defined("_ECRIRE_INC_VERSION"))
     11        return;
    1112
    1213include_spip('inc/actions');
    1314include_spip('inc/editer');
    1415
    15 function formulaires_reservation_charger_dist($id='',$id_article=''){
     16function formulaires_reservation_charger_dist($id = '', $id_article = '', $retour='') {
    1617        include_spip('inc/config');
    1718        include_spip('formulaires/selecteur/generique_fonctions');
    18        
     19
    1920        //Si l'affichage n'est pas déjà définie on établit si une zone s'applique
    20         if(!$id_article AND !$id){
     21        if (!$id_article AND !$id) {
    2122                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                
     23
     24                $config = lire_config('reservation_evenement/rubrique_reservation');
     25                $rubrique_reservation = picker_selected($config, 'rubrique');
     26                $zone = rubrique_reservation('', 'evenement', $rubrique_reservation, array(
     27                        'tableau' => 'oui',
     28                        'where' => 'e.date_fin>NOW() AND e.inscription=1 AND e.statut="publie"',
     29                        'select' => '*',
     30                        'resultat' => 'par_id'
     31                ));
     32
     33        }
     34
     35        if (!is_array($zone)) {
     36                $where = array('date_fin>NOW() AND inscription=1 AND statut="publie"');
     37                if ($id) {
     38                        if (!is_array($id))
     39                                array_push($where, 'id_evenement=' . intval($id));
     40                        elseif (is_array($id))
     41                                array_push($where, 'id_evenement IN (' . implode(',', $id) . ')');
     42                }
     43                if ($id_article) {
     44                        if (!is_array($id_article))
     45                                array_push($where, 'id_article=' . intval($id_article));
     46                        elseif (is_array($id_article))
     47                                array_push($where, 'id_article IN (' . implode(',', $id_article) . ')');
     48                }
     49
     50                $sql = sql_select('*', 'spip_evenements', $where, '', 'date_debut,date_fin');
     51
     52                $evenements = array();
     53                $articles = array();
     54                while ($row = sql_fetch($sql)) {
     55                        $evenements[$row['id_evenement']] = $row;
     56                        $articles[] = $row['id_article'];
     57                }
     58        } else {
     59                $evenements = $zone;
     60        }
     61
     62        $valeurs = array(
     63                'evenements' => $evenements,
     64                'articles' => $evenements,
     65                'lang' => $GLOBALS['spip_lang']
     66        );
     67
     68        if (intval($GLOBALS['visiteur_session'])) {
     69                $session = $GLOBALS['visiteur_session'];
     70                $nom = $session['nom'];
     71                $email = $session['email'];
     72
    7273        }
    7374
    7475        // 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         $valeurs['quantite'] = _request('quantite')?_request('quantite'):1;
    95            
     76        $valeurs['id_evenement'] = _request('id_evenement') ? (is_array(_request('id_evenement')) ? _request('id_evenement') : array(_request('id_evenement'))) : array();
     77
     78        $valeurs['id_objet_prix'] = _request('id_objet_prix') ? (is_array(_request('id_objet_prix')) ? _request('id_objet_prix') : array(_request('id_objet_prix'))) : array();
     79
     80        $valeurs['nom'] = $nom;
     81        $valeurs['email'] = $email;
     82        $valeurs['enregistrer'] = _request('enregistrer');
     83        $valeurs['new_pass'] = _request('new_pass');
     84        $valeurs['new_pass2'] = _request('new_pass2');
     85        $valeurs['new_login'] = _request('new_login');
     86        $valeurs['statut'] = 'encours';
     87        $valeurs['quantite'] = _request('quantite') ? _request('quantite') : 1;
     88
    9689        //les champs extras auteur
    9790        include_spip('cextras_pipelines');
    98        
    99         if(function_exists('champs_extras_objet')){
     91
     92        if (function_exists('champs_extras_objet')) {
    10093                //Charger les définitions pour la création des formulaires
    101                 $valeurs['champs_extras_auteurs']=champs_extras_objet(table_objet_sql('auteur'));
    102                 foreach($valeurs['champs_extras_auteurs'] as $key =>$value){
    103                         $valeurs[$value['options']['nom']]=$session[$value['options']['nom']];
    104                         $valeurs['champs_extras_auteurs'][$key]['options']['label']=extraire_multi($value['options']['label']);   
    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         $valeurs['_hidden'].='<input type="hidden" name="quantite" value="'.$valeurs['quantite'].'"/>';   
    112 
     94                $valeurs['champs_extras_auteurs'] = champs_extras_objet(table_objet_sql('auteur'));
     95                foreach ($valeurs['champs_extras_auteurs'] as $key => $value) {
     96                        $valeurs[$value['options']['nom']] = $session[$value['options']['nom']];
     97                        $valeurs['champs_extras_auteurs'][$key]['options']['label'] = extraire_multi($value['options']['label']);
     98
     99                }
     100        }
     101
     102        $valeurs['_hidden'] .= '<input type="hidden" name="statut" value="' . $valeurs['statut'] . '"/>';
     103        $valeurs['_hidden'] .= '<input type="hidden" name="lang" value="' . $valeurs['lang'] . '"/>';
     104        $valeurs['_hidden'] .= '<input type="hidden" name="quantite" value="' . $valeurs['quantite'] . '"/>';
    113105
    114106        return $valeurs;
    115107}
    116108
    117 function formulaires_reservation_verifier_dist($id='',$id_article=''){
     109function formulaires_reservation_verifier_dist($id = '', $id_article = '', $retour='') {
    118110        $erreurs = array();
    119         $email=_request('email');
    120        
    121         if(isset($GLOBALS['visiteur_session']['id_auteur'])){
    122                 $id_auteur=$GLOBALS['visiteur_session']['id_auteur'];
    123         }
    124                
    125         if(_request('enregistrer'))  {
     111        $email = _request('email');
     112        $id_auteur = '';
     113
     114        if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur'] > 0) {
     115                $id_auteur = $GLOBALS['visiteur_session']['id_auteur'];
     116        }
     117
     118        if (_request('enregistrer')) {
    126119                include_spip('inc/auth');
    127                 $obligatoires=array('nom','email','new_pass','new_login');
    128                 foreach($obligatoires AS $champ){
    129                         if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
     120                $obligatoires = array(
     121                        'nom',
     122                        'email',
     123                        'new_pass',
     124                        'new_login'
     125                );
     126                foreach ($obligatoires AS $champ) {
     127                        if (!_request($champ))
     128                                $erreurs[$champ] = _T("info_obligatoire");
    130129                }
    131130                //Vérifier le login
    132                 if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)){
     131                if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) {
    133132                        $erreurs['new_login'] = $err;
    134133                        $erreurs['message_erreur'] .= $err;
    135134                }
    136                  
     135
    137136                //Vérifier les mp
    138137                if ($p = _request('new_pass')) {
     
    140139                                $erreurs['new_pass'] = _T('info_passes_identiques');
    141140                                $erreurs['message_erreur'] .= _T('info_passes_identiques');
    142                         }
    143                         elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'),$p, $id_auteur)){
     141                        } elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
    144142                                $erreurs['new_pass'] = $err;
    145143                        }
    146144                }
    147         }
    148         else{
    149                 $obligatoires=array('nom','email');
    150                
    151                 if(test_plugin_actif('declinaisons')) array_push($obligatoires,'id_objet_prix');
    152                 else array_push($obligatoires,'id_evenement');
    153    
    154                 foreach($obligatoires AS $champ){
    155                         if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
    156                 }
    157         }
    158 
    159         if ($email){
     145        } else {
     146                $obligatoires = array(
     147                        'nom',
     148                        'email'
     149                );
     150
     151                if (test_plugin_actif('declinaisons'))
     152                        array_push($obligatoires, 'id_objet_prix');
     153                else
     154                        array_push($obligatoires, 'id_evenement');
     155
     156                foreach ($obligatoires AS $champ) {
     157                        if (!_request($champ))
     158                                $erreurs[$champ] = _T("info_obligatoire");
     159                }
     160        }
     161
     162        if ($email) {
    160163                include_spip('inc/filtres');
    161164                // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
    162                 if (!email_valide($email)){
    163                         $id_auteur_session=isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:'';
    164                         $erreurs['email'] = (($id_auteur==$id_auteur_session)?_T('form_email_non_valide'):_T('form_prop_indiquer_email'));
    165                 }
    166                 elseif(!$id_auteur){
    167                         if($email_utilise=sql_getfetsel('email','spip_auteurs','email='.sql_quote($email))) $erreurs['email']=_T('reservation:erreur_email_utilise');
     165                if (!email_valide($email)) {
     166                        $erreurs['email'] = $id_auteur ? _T('form_email_non_valide') : _T('form_prop_indiquer_email');
     167                } elseif (!$id_auteur) {
     168                        if ($email_utilise = sql_getfetsel('email', 'spip_auteurs', 'email=' . sql_quote($email)))
     169                                $erreurs['email'] = _T('reservation:erreur_email_utilise');
    168170                }
    169171        }
     
    171173        //les champs extras auteur
    172174        include_spip('cextras_pipelines');
    173        
    174         if(function_exists('champs_extras_objet')){
     175
     176        if (function_exists('champs_extras_objet')) {
    175177                include_spip('inc/saisies');
    176                 //Charger les définitions
    177                 $champs_extras_auteurs=champs_extras_objet(table_objet_sql('auteur'));
    178                 $erreurs=array_merge($erreurs,saisies_verifier($champs_extras_auteurs));
    179         }
    180         if (count($erreurs) AND !isset($erreurs['message_erreur'])) $erreurs['message_erreur'] = _T('reservation:message_erreur');
     178                //Charger les définitions
     179                $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
     180                $erreurs = array_merge($erreurs, saisies_verifier($champs_extras_auteurs));
     181        }
     182        if (count($erreurs) AND !isset($erreurs['message_erreur']))
     183                $erreurs['message_erreur'] = _T('reservation:message_erreur');
    181184        return $erreurs;
    182185}
    183186
    184 function formulaires_reservation_traiter_dist($id='',$id_article=''){   
    185         $enregistrer=charger_fonction('reservation_enregistrer','inc');
    186         if(isset($GLOBALS['visiteur_session']['id_auteur']))$id_auteur=$GLOBALS['visiteur_session']['id_auteur']; 
    187                  
    188         return $enregistrer($id,$id_article,$id_auteur);
     187function formulaires_reservation_traiter_dist($id = '', $id_article = '', $retour='') {
     188        if ($retour) {
     189                refuser_traiter_formulaire_ajax();
     190        }
     191        $enregistrer = charger_fonction('reservation_enregistrer', 'inc');
     192        if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur'] > 0) {
     193                $id_auteur = $GLOBALS['visiteur_session']['id_auteur'];
     194        }
     195
     196        $retours = $enregistrer($id, $id_article, $id_auteur);
     197       
     198        // Si on demande une redirection
     199        if ($retour) $retours['redirect'] = $retour;
     200
     201        return $retours;
    189202}
    190 
    191203?>
  • _plugins_/reservation_evenement/branches/v1/inc/reservation_enregistrer.php

    r89236 r89541  
    22
    33// Sécurité
    4 if (!defined('_ECRIRE_INC_VERSION')) return;
     4if (!defined('_ECRIRE_INC_VERSION'))
     5        return;
    56
    67//Enregistrement d'une réservation
    7 function inc_reservation_enregistrer_dist($id='',$id_article='',$id_auteur='',$champs_extras_auteurs=''){
     8function inc_reservation_enregistrer_dist($id = '', $id_article = '', $id_auteur = '', $champs_extras_auteurs = '') {
     9        include_spip('inc/config');
    810        include_spip('inc/session');
    9         include_spip('inc/config');
    10         $config=lire_config('reservation_evenement');
    11         $statut = $config['statut_defaut']?$config['statut_defaut']:'rien';
    12         if($statut=='rien'){
    13                 $statut_defaut=charger_fonction('defaut','inc/statuts');
    14                 $statut=$statut_defaut($statut);
    15         }
     11        $config = lire_config('reservation_evenement');
     12        $statut = $config['statut_defaut'] ? $config['statut_defaut'] : 'rien';
     13        if ($statut == 'rien') {
     14                $statut_defaut = charger_fonction('defaut', 'inc/statuts');
     15                $statut = $statut_defaut($statut);
     16        }
    1617
    1718        //Créer la réservation
    18         $action=charger_fonction('editer_objet','action');
    19        
     19        $action = charger_fonction('editer_objet', 'action');
     20
    2021        // La référence
    2122        $fonction_reference = charger_fonction('reservation_reference', 'inc/');
    2223
    23         $set=array('statut'=>$statut,'lang'=>_request('lang'));
    24        
     24        $set = array(
     25                'statut' => $statut,
     26                'lang' => _request('lang')
     27        );
     28
    2529        //les champs extras auteur
    2630        include_spip('cextras_pipelines');
    27         $valeurs_extras=array();
     31        $valeurs_extras = array();
     32
     33        if (_request('enregistrer')) {
     34                include_spip('actions/editer_auteur');
     35
     36                if (!$id_auteur) {
     37                        include_spip('inc/auth');
     38                        $res = formulaires_editer_objet_traiter('auteur', 'new', '', '', $retour, $config_fonc, $row, $hidden);
     39                        $id_auteur = $res['id_auteur'];
     40                        sql_updateq('spip_auteurs', array('statut' => '6forum'), 'id_auteur=' . $id_auteur);
     41                        $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $id_auteur) ;           
     42            auth_loger($auteur);
     43                }
     44                $set['reference'] = $fonction_reference($id_auteur);
     45        } elseif (!intval($id_auteur)) {
     46                $set['nom'] = _request('nom');
     47                $set['email'] = _request('email');
     48                //$set['donnees_auteur']=serialize( $valeurs_extras);
     49        } else {
     50                $valeurs = array_merge(array(
     51                        'nom' => _request('nom'),
     52                        'email' => _request('email')
     53                ), $valeurs_extras);
     54                sql_updateq('spip_auteurs', $valeurs, 'id_auteur=' . $id_auteur);
     55        }
     56        $set['reference'] = $fonction_reference();
     57        $set['id_auteur'] = $id_auteur;
     58
     59        $id_reservation = $action('new', 'reservation', $set);
    2860       
     61        // On ajoute l'id à la session
     62        session_set('id_reservation', $id_reservation);
     63       
     64        $message = '<p>' . _T('reservation:reservation_enregistre') . '</p>';
     65        $message .= '<h3>' . _T('reservation:details_reservation') . '</h3>';
     66        $message .= recuperer_fond('inclure/reservation', array('id_reservation' => $id_reservation[0]));
    2967
    30         /**/
    31 
    32         if(_request('enregistrer')){
    33                 include_spip('actions/editer_auteur');
    34                        
    35                 if(!$id_auteur){
    36                         $res = formulaires_editer_objet_traiter('auteur','new','','',$retour,$config_fonc,$row,$hidden);
    37                         $id_auteur=$res['id_auteur'];
    38                         sql_updateq('spip_auteurs',array('statut'=>'6forum'),'id_auteur='.$id_auteur);
    39                 }
    40                 $set['reference']=$fonction_reference($id_auteur);
    41         }
    42         elseif(!intval($id_auteur)){
    43                 $set['nom']=_request('nom');
    44                 $set['email']=_request('email');
    45                 //$set['donnees_auteur']=serialize( $valeurs_extras);
    46         }
    47         else{
    48                 $valeurs=array_merge(array('nom'=>_request('nom'),'email'=>_request('email')),$valeurs_extras);
    49                 sql_updateq('spip_auteurs',$valeurs,'id_auteur='.$id_auteur);
    50         }
    51         $set['reference']=$fonction_reference();         
    52         $set['id_auteur']=$id_auteur;
    53        
    54         $id_reservation=$action('new','reservation',$set);
    55         $message='<p>'._T('reservation:reservation_enregistre').'</p>';
    56         $message.='<h3>'._T('reservation:details_reservation').'</h3>';
    57         $message.=recuperer_fond('inclure/reservation',array('id_reservation'=>$id_reservation[0]));
    58        
    5968        //Ivalider les caches
    6069        include_spip('inc/invalideur');
    6170        suivre_invalideur("id='reservation/$id_reservation'");
    62         suivre_invalideur("id='reservations_detail/$id_reservations_detail'"); 
    63         return array('message_ok'=>$message,'editable'=>false);
     71        suivre_invalideur("id='reservations_detail/$id_reservations_detail'");
     72        return array(
     73                'message_ok' => $message,
     74                'editable' => false
     75        );
    6476}
  • _plugins_/reservation_evenement/branches/v1/paquet.xml

    r89526 r89541  
    22        prefix="reservation_evenement"
    33        categorie="date"
    4         version="1.17.6"
     4        version="1.18.0"
    55        etat="test"
    66        compatibilite="[3.0.16;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.