Changeset 85420 in spip-zone


Ignore:
Timestamp:
Oct 21, 2014, 5:20:18 PM (5 years ago)
Author:
abelass@…
Message:
  • prix_objet pas obligatoire
  • lisibilité code
  • langues
Location:
_plugins_/reservation_evenement
Files:
3 added
16 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/reservation_evenement/branches/v1/formulaires/configurer_reservation_evenement.php

    r80720 r85420  
    99function formulaires_configurer_reservation_evenement_saisies_dist(){
    1010
    11     $liste_objets=lister_tables_objets_sql();
    12     $statuts=array();
    13     $statuts_selectionnees=array();
     11        $liste_objets=lister_tables_objets_sql();
     12        $statuts=array();
     13        $statuts_selectionnees=array();
    1414        include_spip('inc/config');
    1515        include_spip('inc/plugin');
    1616        $config = lire_config('reservation_evenement',array());
    1717        $quand=isset($config['quand'])?$config['quand']:array();
    18      //Le statuts du plugin, sauf en cours
    19      foreach($liste_objets['spip_reservations']['statut_textes_instituer'] AS $statut=>$label){
    20          if($statut!='encours')$statuts[$statut]=_T($label);
    21                  if(in_array($statut,$quand))$statuts_selectionnees[$statut]=_T($label);
    22      }
    23    
     18        //Le statuts du plugin, sauf en cours
     19        foreach($liste_objets['spip_reservations']['statut_textes_instituer'] AS $statut=>$label){
     20                if($statut!='encours')$statuts[$statut]=_T($label);
     21                if(in_array($statut,$quand))$statuts_selectionnees[$statut]=_T($label);
     22        }
     23       
    2424        $choix_expediteurs = array(
    25                         'webmaster' => _T('reservation:notifications_expediteur_choix_webmaster'),
    26                         'administrateur' => _T('reservation:notifications_expediteur_choix_administrateur'),
    27                         'email' => _T('reservation:notifications_expediteur_choix_email')
     25                'webmaster' => _T('reservation:notifications_expediteur_choix_webmaster'),
     26                'administrateur' => _T('reservation:notifications_expediteur_choix_administrateur'),
     27                'email' => _T('reservation:notifications_expediteur_choix_email')
    2828        );
    2929       
     
    4040                        ),
    4141
    42             'saisies' => array(
    43                array(
    44                     'saisie' => 'selection',
    45                     'options' => array(
    46                         'nom' => 'statut_defaut',
    47                         'datas' => $statuts,
    48                         'defaut'=> 'valide',
    49                         'cacher_option_intro' => 'on',
    50                         'label' => _T('reservation:label_statut_defaut'),
    51                         'defaut'=> $config['statut_defaut']
    52                     )
    53                 ),
    54                 array(
    55                     'saisie' => 'selection_multiple',
    56                     'options' => array(
    57                         'nom' => 'statuts_complet',
    58                         'datas' => $statuts,
    59                         'defaut'=> 'valide',
    60                         'cacher_option_intro' => 'on',
    61                         'label' => _T('reservation:label_statuts_complet'),
    62                         'explication' => _T('reservation:statuts_complet_explication'),                       
    63                         'defaut'=> $config['statuts_complet']
    64                     )
    65                 ),                                             
    66             )           
     42                        'saisies' => array(
     43                           array(
     44                                        'saisie' => 'selection',
     45                                        'options' => array(
     46                                                'nom' => 'statut_defaut',
     47                                                'datas' => $statuts,
     48                                                'defaut'=> 'valide',
     49                                                'cacher_option_intro' => 'on',
     50                                                'label' => _T('reservation:label_statut_defaut'),
     51                                                'defaut'=> $config['statut_defaut']
     52                                        )
     53                                ),
     54                                array(
     55                                        'saisie' => 'selection_multiple',
     56                                        'options' => array(
     57                                                'nom' => 'statuts_complet',
     58                                                'datas' => $statuts,
     59                                                'defaut'=> 'valide',
     60                                                'cacher_option_intro' => 'on',
     61                                                'label' => _T('reservation:label_statuts_complet'),
     62                                                'explication' => _T('reservation:statuts_complet_explication'),
     63                                                'defaut'=> $config['statuts_complet']
     64                                        )
     65                                ),
     66                        )                       
    6767                ),
    6868                array(
     
    159159                                        'options' => array(
    160160                                                'nom' => 'vendeur',
    161                                                 'label' => _T('reservation:notifications_vendeur_label'),
    162                                                 'explication' => _T('reservation:notifications_vendeur_explication'),
     161                                                'label' => _T('reservation:notifications_destinateur_label'),
     162                                                'explication' => _T('reservation:notifications_destinateur_explication'),
    163163                                                'cacher_option_intro' => 'on',
    164164                                                'defaut' => $config['vendeur'],
     
    225225                                                'defaut' => $config['envoi_separe']
    226226                                        )
    227                                 )                                                                                                                       
     227                                )
    228228                        )
    229229                )
  • _plugins_/reservation_evenement/branches/v1/formulaires/editer_reservation.php

    r80720 r85420  
    33 * Gestion du formulaire de d'édition de reservation
    44 *
    5  * @plugin    Réservation Événements
     5 * @plugin      Réservation Événements
    66 * @copyright  2013
    7  * @author    Rainer Müller
    8  * @licence    GNU/GPL
    9  * @package    SPIP\Reservation_evenement\Formulaires
     7 * @author      Rainer Müller
     8 * @licence     GNU/GPL
     9 * @package     SPIP\Reservation_evenement\Formulaires
    1010 */
    1111
     
    9898        else $obligatoire=array_merge($obligatoire,array('id_auteur'));
    9999               
    100                
    101 
     100        $erreurs=formulaires_editer_objet_verifier('reservation',$id_reservation,$obligatoire);
     101        if ($email){
     102                include_spip('inc/filtres');
     103                // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
     104                if (!email_valide($email)){
     105                        $id_auteur_session=isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:'';
     106                        $erreurs['email'] = (($id_auteur==$id_auteur_session)?_T('form_email_non_valide'):_T('form_prop_indiquer_email'));
     107                }
     108                elseif(!$id_auteur){
     109                        if($email_utilise=sql_getfetsel('email','spip_auteurs','email='.sql_quote($email))) $erreurs['email']=_T('reservation:erreur_email_utilise');
     110                }
     111        }
    102112       
    103        
    104    
    105     $erreurs=formulaires_editer_objet_verifier('reservation',$id_reservation,$obligatoire);
    106          if ($email){
    107             include_spip('inc/filtres');
    108             // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
    109             if (!email_valide($email)){
    110                 $id_auteur_session=isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:'';
    111                 $erreurs['email'] = (($id_auteur==$id_auteur_session)?_T('form_email_non_valide'):_T('form_prop_indiquer_email'));
    112                 }
    113             elseif(!$id_auteur){
    114                 if($email_utilise=sql_getfetsel('email','spip_auteurs','email='.sql_quote($email))) $erreurs['email']=_T('reservation:erreur_email_utilise');
    115                 }
    116             }     
    117    
    118      // verifier et changer en datetime sql la date envoyee
    119      $verifier = charger_fonction('verifier', 'inc');
    120      $champ = 'date_paiement';
    121      $normaliser = null;
    122      if ($erreur = $verifier(_request($champ), 'date', array('normaliser'=>'datetime'), $normaliser)) {
    123      $erreurs[$champ] = $erreur;
    124      // si une valeur de normalisation a ete transmis, la prendre.
    125      } elseif (!is_null($normaliser) and _request($champ)) {
    126      set_request($champ, $normaliser);
    127      }
    128      else set_request($champ,'0000-00-00 00:00:00');
    129  return $erreurs;
     113        // verifier et changer en datetime sql la date envoyee
     114        $verifier = charger_fonction('verifier', 'inc');
     115        $champ = 'date_paiement';
     116        $normaliser = null;
     117        if ($erreur = $verifier(_request($champ), 'date', array('normaliser'=>'datetime'), $normaliser)) {
     118                $erreurs[$champ] = $erreur;
     119        // si une valeur de normalisation a ete transmis, la prendre.
     120        } elseif (!is_null($normaliser) and _request($champ)) {
     121                set_request($champ, $normaliser);
     122        }
     123        else set_request($champ,'0000-00-00 00:00:00');
     124        return $erreurs;
    130125
    131126}
     
    154149 */
    155150function formulaires_editer_reservation_traiter_dist($id_reservation='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    156    
     151       
    157152        return formulaires_editer_objet_traiter('reservation',$id_reservation,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
    158153}
  • _plugins_/reservation_evenement/branches/v1/formulaires/editer_reservations_detail.php

    r84286 r85420  
    44 *
    55 * @plugin     Reservations_detail
    6  * @copyright  2013
     6 * @copyright  2013-2014
    77 * @author     Rainer
    88 * @licence    GNU/GPL
     
    6262        $date=date('Y-m-d G:i:s');
    6363        $valeurs = formulaires_editer_objet_charger('reservations_detail',$id_reservations_detail,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
    64     if(isset($valeurs['id_evenement']) AND $valeurs['id_evenement']>0)$valeurs['id_article']=sql_getfetsel('id_article','spip_evenements','id_evenement='.$valeurs['id_evenement']);
    65     $valeurs['id_reservation']=_request('id_reservation')?_request('id_reservation'):$valeurs['id_reservation'];
     64        if(isset($valeurs['id_evenement']) AND $valeurs['id_evenement']>0)$valeurs['id_article']=sql_getfetsel('id_article','spip_evenements','id_evenement='.$valeurs['id_evenement']);
     65        $valeurs['id_reservation']=_request('id_reservation')?_request('id_reservation'):$valeurs['id_reservation'];
    6666        $sql=sql_select('id_article','spip_evenements','date_fin > '.sql_quote($date));
    6767        $valeurs['articles']=array();
    68     while ($data=sql_fetch($sql))$valeurs['articles'][]=$data['id_article'];
     68        while ($data=sql_fetch($sql))$valeurs['articles'][]=$data['id_article'];
    6969        return $valeurs;
    7070}
     
    9393 */
    9494function formulaires_editer_reservations_detail_verifier_dist($id_reservations_detail='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    95     $obligatoire=array('id_evenement','id_reservation');
    96     if(test_plugin_actif('prix_objets'))$obligatoire=array_merge($obligatoire,array('id_prix_objet'));
    97    
    98     return formulaires_editer_objet_verifier('reservations_detail',$id_reservations_detail,$obligatoire);
     95        $obligatoire=array('id_evenement','id_reservation');
     96        if(test_plugin_actif('prix_objets'))$obligatoire=array_merge($obligatoire,array('id_prix_objet'));
     97       
     98        return formulaires_editer_objet_verifier('reservations_detail',$id_reservations_detail,$obligatoire);
    9999}
    100100
  • _plugins_/reservation_evenement/branches/v1/formulaires/reservation.php

    r82555 r85420  
    44 * Licence GPL 3
    55 *
    6  * 2006-2011
     6 * 2006-2014
    77 * Auteurs : cf paquet.xml
    88 */
     
    1515function formulaires_reservation_charger_dist($id='',$id_article=''){
    1616
    17         // si pas d'evenement ou d'inscription, on echoue silencieusement
    18        
    19         $where=array('date_fin>NOW() AND inscription=1 AND statut="publie"');
     17    // si pas d'evenement ou d'inscription, on echoue silencieusement
     18   
     19    $where=array('date_fin>NOW() AND inscription=1 AND statut="publie"');
    2020    if($id){
    2121        if(!is_array($id))array_push($where,'id_evenement='.intval($id));
    2222        elseif(is_array($id))array_push($where,'id_evenement IN ('.implode(',',$id).')');
    23         }
     23    }
    2424    if($id_article){
    2525        if(!is_array($id_article)) array_push($where,'id_article='.intval($id_article));   
    2626        elseif(is_array($id_article))array_push($where,'id_article IN '.implode(',',$id_article).')');
    27         }
     27    }
    2828
    29         $sql = sql_select('*','spip_evenements',$where,'','date_debut,date_fin');
     29    $sql = sql_select('*','spip_evenements',$where,'','date_debut,date_fin');
    3030
    3131    $evenements=array();
     
    3535        $articles[]=$row['id_article'];
    3636    }
    37        
     37   
    3838
    39         $valeurs = array('evenements'=>$evenements,'articles'=>$evenements,'lang'=>$GLOBALS['spip_lang']);
     39    $valeurs = array('evenements'=>$evenements,'articles'=>$evenements,'lang'=>$GLOBALS['spip_lang']);
    4040
    41    
     41
    4242    if(intval($GLOBALS['visiteur_session'])){
    4343        $session=$GLOBALS['visiteur_session'];
    4444        $nom=$session['nom'];
    45         $email=$session['email'];               
     45        $email=$session['email'];
    4646       
    4747    }
    4848
    49         // valeurs d'initialisation
    50         $valeurs['id_evenement'] = _request('id_evenement')?(
    51            is_array(_request('id_evenement'))
    52                ?_request('id_evenement'):array(_request('id_evenement')))
     49    // valeurs d'initialisation
     50    $valeurs['id_evenement'] = _request('id_evenement')?(
     51       is_array(_request('id_evenement'))
     52           ?_request('id_evenement'):array(_request('id_evenement')))
    5353       :array();
    5454       
     
    6666    $valeurs['new_pass2']=_request('new_pass2'); 
    6767    $valeurs['new_login']=_request('new_login');       
    68         $valeurs['statut'] = 'encours';
    69            
     68    $valeurs['statut'] = 'encours';
     69       
    7070    //les champs extras auteur
    7171    include_spip('cextras_pipelines');
     
    7474        //Charger les définitions pour la création des formulaires
    7575        $valeurs['champs_extras_auteurs']=champs_extras_objet(table_objet_sql('auteur'));
    76        foreach($valeurs['champs_extras_auteurs'] as $key =>$value){
    77            $valeurs[$value['options']['nom']]=$session[$value['options']['nom']];
    78            $valeurs['champs_extras_auteurs'][$key]['options']['label']=extraire_multi($value['options']['label']);   
    79            
    80             }
     76        foreach($valeurs['champs_extras_auteurs'] as $key =>$value){
     77            $valeurs[$value['options']['nom']]=$session[$value['options']['nom']];
     78            $valeurs['champs_extras_auteurs'][$key]['options']['label']=extraire_multi($value['options']['label']);   
     79
    8180        }
     81    }
    8282   
    8383   
     
    8686
    8787
    88         return $valeurs;
     88    return $valeurs;
    8989}
    9090
    9191function formulaires_reservation_verifier_dist($id='',$id_article=''){
    92         $erreurs = array();
     92    $erreurs = array();
    9393    $email=_request('email');
    9494   
    9595    if(isset($GLOBALS['visiteur_session']['id_auteur'])){
    96                 $id_auteur=$GLOBALS['visiteur_session']['id_auteur'];
     96        $id_auteur=$GLOBALS['visiteur_session']['id_auteur'];
     97    }
     98       
     99    if(_request('enregistrer'))  {
     100        include_spip('inc/auth');
     101        $obligatoires=array('nom','email','new_pass','new_login');
     102        foreach($obligatoires AS $champ){
     103            if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
     104        }
     105        //Vérifier le login
     106        if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)){
     107            $erreurs['new_login'] = $err;
     108            $erreurs['message_erreur'] .= $err;
     109        }
     110         
     111        //Vérifier les mp
     112        if ($p = _request('new_pass')) {
     113            if ($p != _request('new_pass2')) {
     114                $erreurs['new_pass'] = _T('info_passes_identiques');
     115                $erreurs['message_erreur'] .= _T('info_passes_identiques');
    97116            }
     117            elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'),$p, $id_auteur)){
     118                $erreurs['new_pass'] = $err;
     119            }
     120        }
     121    }
     122    else{
     123        $obligatoires=array('nom','email');
    98124       
    99          if(_request('enregistrer'))  {
    100             include_spip('inc/auth');
    101              $obligatoires=array('nom','email','new_pass','new_login');
    102              foreach($obligatoires AS $champ){
    103                    if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
    104                   }
    105             //Vérifier le login
    106             if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)){
    107                 $erreurs['new_login'] = $err;
    108                 $erreurs['message_erreur'] .= $err;
    109             }
    110              
    111               //Vérifier les mp
    112              if ($p = _request('new_pass')) {
    113                     if ($p != _request('new_pass2')) {
    114                         $erreurs['new_pass'] = _T('info_passes_identiques');
    115                         $erreurs['message_erreur'] .= _T('info_passes_identiques');
    116                     }
    117                     elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'),$p, $id_auteur)){
    118                         $erreurs['new_pass'] = $err;
    119                     }
    120                 }
    121              }
    122         else{
    123             $obligatoires=array('nom','email');
    124            
    125125        if(test_plugin_actif('declinaisons'))array_push($obligatoires,'id_objet_prix');
    126126        else  array_push($obligatoires,'id_evenement');
    127       
    128             foreach($obligatoires AS $champ){
    129                 if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
    130             }
    131         }
     127   
     128        foreach($obligatoires AS $champ){
     129            if(!_request($champ))$erreurs[$champ]=_T("info_obligatoire");
     130        }
     131    }
    132132
    133          if ($email){
    134             include_spip('inc/filtres');
    135             // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
    136             if (!email_valide($email)){
    137                 $id_auteur_session=isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:'';
    138                 $erreurs['email'] = (($id_auteur==$id_auteur_session)?_T('form_email_non_valide'):_T('form_prop_indiquer_email'));
    139                 }
    140             elseif(!$id_auteur){
    141                 if($email_utilise=sql_getfetsel('email','spip_auteurs','email='.sql_quote($email))) $erreurs['email']=_T('reservation:erreur_email_utilise');
    142                 }
    143             }
    144          
     133    if ($email){
     134        include_spip('inc/filtres');
     135        // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
     136        if (!email_valide($email)){
     137            $id_auteur_session=isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:'';
     138            $erreurs['email'] = (($id_auteur==$id_auteur_session)?_T('form_email_non_valide'):_T('form_prop_indiquer_email'));
     139        }
     140        elseif(!$id_auteur){
     141            if($email_utilise=sql_getfetsel('email','spip_auteurs','email='.sql_quote($email))) $erreurs['email']=_T('reservation:erreur_email_utilise');
     142        }
     143    }
     144
    145145    //les champs extras auteur
    146146    include_spip('cextras_pipelines');
     
    151151        $champs_extras_auteurs=champs_extras_objet(table_objet_sql('auteur'));
    152152        $erreurs=array_merge($erreurs,saisies_verifier($champs_extras_auteurs));
    153         }
    154         if (count($erreurs) AND !isset($erreurs['message_erreur'])) $erreurs['message_erreur'] = _T('reservation:message_erreur');
    155         return $erreurs;
     153    }
     154    if (count($erreurs) AND !isset($erreurs['message_erreur'])) $erreurs['message_erreur'] = _T('reservation:message_erreur');
     155    return $erreurs;
    156156}
    157157
    158 function formulaires_reservation_traiter_dist($id='',$id_article=''){   
    159         $enregistrer=charger_fonction('reservation_enregistrer','inc');
    160         if(isset($GLOBALS['visiteur_session']['id_auteur']))$id_auteur=$GLOBALS['visiteur_session']['id_auteur']; 
    161                 
    162         return $enregistrer($id,$id_article,$id_auteur);
     158function formulaires_reservation_traiter_dist($id='',$id_article=''){   
     159    $enregistrer=charger_fonction('reservation_enregistrer','inc');
     160    if(isset($GLOBALS['visiteur_session']['id_auteur']))$id_auteur=$GLOBALS['visiteur_session']['id_auteur']; 
     161        
     162    return $enregistrer($id,$id_article,$id_auteur);
    163163}
    164164
  • _plugins_/reservation_evenement/branches/v1/inc/donnees_reservations_details.php

    r82555 r85420  
    44function inc_donnees_reservations_details_dist($id_reservations_detail,$set) {
    55
    6     if(count($set)>0){
    7         include_spip('inc/filtres');
    8         $reservations_details=sql_fetsel('*','spip_reservations_details','id_reservations_detail='.$id_reservations_detail);
     6        if(count($set)>0){
     7                include_spip('inc/filtres');
     8                $reservations_details=sql_fetsel('*','spip_reservations_details','id_reservations_detail='.$id_reservations_detail);
    99
    10         $id_evenement=isset($set['id_evenement'])?$set['id_evenement']:$reservations_details['id_evenement'];   
    11         // Les données de l'évènenement
     10                $id_evenement=isset($set['id_evenement'])?$set['id_evenement']:$reservations_details['id_evenement'];   
     11                // Les données de l'évènenement
    1212
    13         $evenement=sql_fetsel('*','spip_evenements','id_evenement='.$id_evenement);
    14        
    15         $date_debut=$evenement['date_debut'];
    16         if(!$date_fin=sql_getfetsel('date_fin','spip_evenements','id_evenement_source='.$id_evenement,'','date_debut DESC'))$date_fin=$evenement['date_fin'];
     13                $evenement=sql_fetsel('*','spip_evenements','id_evenement='.$id_evenement);
     14               
     15                $date_debut=$evenement['date_debut'];
     16                if(!$date_fin=sql_getfetsel('date_fin','spip_evenements','id_evenement_source='.$id_evenement,'','date_debut DESC'))$date_fin=$evenement['date_fin'];
    1717
    18         // On établit les dates       
    19         if($date_debut!=$date_fin){
    20             if(affdate($date_debut,'d-m-Y')==affdate($date_fin,'d-m-Y')){
    21                 $date=affdate($date_debut,'d/m/Y').','.affdate($date_debut,'G:i').'-'.affdate($date_fin,'G:i');
    22             }
    23             else {
    24                 $date=affdate($date_debut,'d/m/Y').'-'.affdate($date_fin,'d/m/Y').', '.affdate($date_debut,'nom_jour').' '.affdate($date_debut,'G:i').'-'.affdate($date_fin,'G:i');
    25                
    26                 }
    27             }
    28         else{
    29             if(affdate($date_debut,'G:i')=='0:00')$date=affdate($date_debut,'d/m/Y');
    30             else $date=affdate($date_debut,'d/m/Y G:i');
    31                 }
    32         // Les déscriptif
    33         $set['descriptif']=$evenement['titre'].'  ('.$date.')';
    34         if(intval($evenement['places']))$set['places']=$evenement['places'];
    35         if(intval($quantite[$id_evenement]))$set['quantite']=$quantite[$id_evenement];
    36         else $set['quantite']=1;
    37        
    38         // Si le prix n'est pas fournit, on essaye de le trouver
     18                // On établit les dates         
     19                if($date_debut!=$date_fin){
     20                        if(affdate($date_debut,'d-m-Y')==affdate($date_fin,'d-m-Y')){
     21                                $date=affdate($date_debut,'d/m/Y').','.affdate($date_debut,'G:i').'-'.affdate($date_fin,'G:i');
     22                        }
     23                        else {
     24                                $date=affdate($date_debut,'d/m/Y').'-'.affdate($date_fin,'d/m/Y').', '.affdate($date_debut,'nom_jour').' '.affdate($date_debut,'G:i').'-'.affdate($date_fin,'G:i');
     25                               
     26                        }
     27                }
     28                else{
     29                        if(affdate($date_debut,'G:i')=='0:00')$date=affdate($date_debut,'d/m/Y');
     30                        else $date=affdate($date_debut,'d/m/Y G:i');
     31                }
     32                // Les descriptif
     33                $set['descriptif']=$evenement['titre'].'  ('.$date.')';
     34                if(intval($evenement['places']))$set['places']=$evenement['places'];
     35                if(intval($quantite[$id_evenement]))$set['quantite']=$quantite[$id_evenement];
     36                else $set['quantite']=1;
     37               
     38                // Si le prix n'est pas fournit, on essaye de le trouver
    3939
    40         if(!isset($set['prix']) AND !isset($set['prix_ht'])){
    41                
    42             /*Existence d'un prix via le plugin Shop Prix https://github.com/abelass/prix_objets_objet */
    43             if($prix_objets=test_plugin_actif('prix_objets')){
    44                 $fonction_prix = charger_fonction('prix', 'inc/');
    45                 $fonction_prix_ht = charger_fonction('ht', 'inc/prix');
    46                 /*si le plugin déclinaison est active il peut y avoir plusieurs prix par évenement*/
    47                 if(test_plugin_actif('declinaisons')){ 
    48                                         $id_prix=isset($set['id_prix_objet'])?$set['id_prix_objet']:$reservations_details['id_prix_objet'];                 
    49                     $p=sql_fetsel('prix_ht,id_prix_objet,id_declinaison','spip_prix_objets','id_prix_objet='.$id_prix);
    50                    
    51                     if($p['id_declinaison']>0)$set['descriptif'].=' - '.supprimer_numero(sql_getfetsel('titre','spip_declinaisons','id_declinaison='.$p['id_declinaison']));
    52                     }
    53                 //Sinon on cherche d'abord le prix attaché à l'évenement, puis à l'article de l'évenement               
    54                 elseif (!$p=sql_fetsel('prix_ht,id_prix_objet','spip_prix_objets','objet="evenement" AND id_objet='.$id_evenement)) $p=sql_fetsel('prix_ht,id_prix_objet','spip_prix_objets','objet="article" AND id_objet='.$evenement['id_article']);
    55                 if(isset($p)){
    56                     $prix_ht = $fonction_prix_ht('prix_objet', $p['id_prix_objet']);
    57                     $prix = $fonction_prix('prix_objet',$p['id_prix_objet']);
    58                     if($prix_ht)$taxe = round(($prix - $prix_ht) / $prix_ht, 3);
    59                     $set['prix_ht']=$prix_ht;
    60                     $set['taxe']=$taxe; 
    61                     $set['id_prix_objet']=$p['id_prix_objet'];   
    62                     }           
    63                 }
    64              /*Sinon un prix attaché 'a l'évenement*/
    65             elseif(intval($evenement['prix'])){
    66                 $fonction_prix = charger_fonction('prix', 'inc/');
    67                 $fonction_prix_ht = charger_fonction('ht', 'inc/prix'); 
    68                 $prix_ht = $fonction_prix_ht('evenement', $id_evenement);
    69                 $prix = $fonction_prix('evenement',$id_evenement);
    70                 $taxe = round(($prix - $prix_ht) / $prix_ht, 3);
    71                 $set['prix_ht']=$prix_ht;
    72                 $set['taxe']=$taxe;                       
    73             }
    74           }
    75        }
     40                if(!isset($set['prix']) AND !isset($set['prix_ht'])){
     41                       
     42                        /*Existence d'un prix via le plugin Shop Prix https://github.com/abelass/prix_objets_objet */
     43                        if($prix_objets=test_plugin_actif('prix_objets')){
     44                                $fonction_prix = charger_fonction('prix', 'inc/');
     45                                $fonction_prix_ht = charger_fonction('ht', 'inc/prix');
     46                                /*si le plugin déclinaison est active il peut y avoir plusieurs prix par évenement*/
     47                                if(test_plugin_actif('declinaisons')){ 
     48                                        $id_prix=isset($set['id_prix_objet'])?$set['id_prix_objet']:$reservations_details['id_prix_objet'];     
     49                                        $p=sql_fetsel('prix_ht,id_prix_objet,id_declinaison','spip_prix_objets','id_prix_objet='.$id_prix);
     50                                       
     51                                        if($p['id_declinaison']>0)$set['descriptif'].=' - '.supprimer_numero(sql_getfetsel('titre','spip_declinaisons','id_declinaison='.$p['id_declinaison']));
     52                                }
     53                                //Sinon on cherche d'abord le prix attaché à l'évenement, puis à l'article de l'évenement
     54                                elseif (!$p=sql_fetsel('prix_ht,id_prix_objet','spip_prix_objets','objet="evenement" AND id_objet='.$id_evenement)) $p=sql_fetsel('prix_ht,id_prix_objet','spip_prix_objets','objet="article" AND id_objet='.$evenement['id_article']);
     55                                if(isset($p)){
     56                                        $prix_ht = $fonction_prix_ht('prix_objet', $p['id_prix_objet']);
     57                                        $prix = $fonction_prix('prix_objet',$p['id_prix_objet']);
     58                                        if($prix_ht)$taxe = round(($prix - $prix_ht) / $prix_ht, 3);
     59                                        $set['prix_ht']=$prix_ht;
     60                                        $set['taxe']=$taxe; 
     61                                        $set['id_prix_objet']=$p['id_prix_objet'];     
     62                                }                       
     63                        }
     64                        /*Sinon un prix attaché 'a l'évenement*/
     65                        elseif(intval($evenement['prix'])){
     66                                $fonction_prix = charger_fonction('prix', 'inc/');
     67                                $fonction_prix_ht = charger_fonction('ht', 'inc/prix'); 
     68                                $prix_ht = $fonction_prix_ht('evenement', $id_evenement);
     69                                $prix = $fonction_prix('evenement',$id_evenement);
     70                                $taxe = round(($prix - $prix_ht) / $prix_ht, 3);
     71                                $set['prix_ht']=$prix_ht;
     72                                $set['taxe']=$taxe;                                             
     73                        }
     74                }
     75        }
    7676
    77     return $set;
     77        return $set;
    7878}
  • _plugins_/reservation_evenement/branches/v1/inc/reservation_enregistrer.php

    r82825 r85420  
    66//Enregistrement d'une réservation
    77function inc_reservation_enregistrer_dist($id='',$id_article='',$id_auteur='',$champs_extras_auteurs=''){
    8  include_spip('inc/session');   
    9     include_spip('inc/config');
    10     $config=lire_config('reservation_evenement');
    11     $statut = $config['statut_defaut']?$config['statut_defaut']:'rien';
     8        include_spip('inc/session');
     9        include_spip('inc/config');
     10        $config=lire_config('reservation_evenement');
     11        $statut = $config['statut_defaut']?$config['statut_defaut']:'rien';
    1212        if($statut=='rien'){
    1313                $statut_defaut=charger_fonction('defaut','inc/statut');
     
    1515        }
    1616
    17     //Créer la réservation
    18     $action=charger_fonction('editer_objet','action');
     17        //Créer la réservation
     18        $action=charger_fonction('editer_objet','action');
    1919       
    20     // La référence
    21     $fonction_reference = charger_fonction('reservation_reference', 'inc/');
     20        // La référence
     21        $fonction_reference = charger_fonction('reservation_reference', 'inc/');
    2222
    23         $set=array('statut'=>$statut,'lang'=>_request('lang'));
    24    
    25     //les champs extras auteur
    26     include_spip('cextras_pipelines');
    27     $valeurs_extras=array();
     23        $set=array('statut'=>$statut,'lang'=>_request('lang'));
     24       
     25        //les champs extras auteur
     26        include_spip('cextras_pipelines');
     27        $valeurs_extras=array();
    2828       
    2929
    30     if(!is_array($champs_extras_auteurs) AND function_exists('champs_extras_objet')){
     30        if(!is_array($champs_extras_auteurs) AND function_exists('champs_extras_objet')){
    3131                //Charger les définitions pour la création des formulaires
    3232                $champs_extras_auteurs=champs_extras_objet(table_objet_sql('auteur'));
    33     }
     33        }
    3434       
    3535        if(is_array($champs_extras_auteurs)){
    3636                foreach( $champs_extras_auteurs as $value){
    3737                        $valeurs_extras[$value['options']['label']]=_request($value['options']['nom']);
    38         }
     38                }
    3939        }
    4040
    41    if(_request('enregistrer')){
    42             include_spip('actions/editer_auteur');
    43            
    44             if(!$id_auteur){
    45                 $res = formulaires_editer_objet_traiter('auteur','new','','',$retour,$config_fonc,$row,$hidden);
    46                 $id_auteur=$res['id_auteur'];
    47                 sql_updateq('spip_auteurs',array('statut'=>'6forum'),'id_auteur='.$id_auteur);
    48                 }
    49        
    50         $set['reference']=$fonction_reference($id_auteur);
    51         }
    52    elseif(!intval($id_auteur)){
    53        $set['nom']=_request('nom');
    54        $set['email']=_request('email');
    55        $set['donnees_auteur']=serialize( $valeurs_extras);
    56    }
    57    else{
    58        $valeurs=array_merge(array('nom'=>_request('nom'),'email'=>_request('email')),$valeurs_extras);
    59        sql_updateq('spip_auteurs',$valeurs,'id_auteur='.$id_auteur);
    60        
    61    }
    62     $set['reference']=$fonction_reference();     
    63     $set['id_auteur']=$id_auteur;
     41        if(_request('enregistrer')){
     42                include_spip('actions/editer_auteur');
     43                       
     44                if(!$id_auteur){
     45                        $res = formulaires_editer_objet_traiter('auteur','new','','',$retour,$config_fonc,$row,$hidden);
     46                        $id_auteur=$res['id_auteur'];
     47                        sql_updateq('spip_auteurs',array('statut'=>'6forum'),'id_auteur='.$id_auteur);
     48                }
    6449       
    65     $id_reservation=$action('new','reservation',$set);
    66     $message='<p>'._T('reservation:reservation_enregistre').'</p>';
    67     $message.='<h3>'._T('reservation:details_reservation').'</h3>';
    68     $message.=recuperer_fond('inclure/reservation',array('id_reservation'=>$id_reservation[0]));
    69    
    70     //Ivalider les caches
    71     include_spip('inc/invalideur');
    72     suivre_invalideur("id='reservation/$id_reservation'");
    73     suivre_invalideur("id='reservations_detail/$id_reservations_detail'");     
     50                $set['reference']=$fonction_reference($id_auteur);
     51        }
     52        elseif(!intval($id_auteur)){
     53                $set['nom']=_request('nom');
     54                $set['email']=_request('email');
     55                $set['donnees_auteur']=serialize( $valeurs_extras);
     56        }
     57        else{
     58                $valeurs=array_merge(array('nom'=>_request('nom'),'email'=>_request('email')),$valeurs_extras);
     59                sql_updateq('spip_auteurs',$valeurs,'id_auteur='.$id_auteur);
     60        }
     61        $set['reference']=$fonction_reference();         
     62        $set['id_auteur']=$id_auteur;
     63       
     64        $id_reservation=$action('new','reservation',$set);
     65        $message='<p>'._T('reservation:reservation_enregistre').'</p>';
     66        $message.='<h3>'._T('reservation:details_reservation').'</h3>';
     67        $message.=recuperer_fond('inclure/reservation',array('id_reservation'=>$id_reservation[0]));
     68       
     69        //Ivalider les caches
     70        include_spip('inc/invalideur');
     71        suivre_invalideur("id='reservation/$id_reservation'");
     72        suivre_invalideur("id='reservations_detail/$id_reservations_detail'"); 
    7473        return array('message_ok'=>$message,'editable'=>false);
    7574}
  • _plugins_/reservation_evenement/branches/v1/inc/statuts.php

    r80720 r85420  
    1313                $statut_defaut=$statut($statut_defaut);
    1414                $statuts=array($statut_defaut);
    15                 }       
     15                }
    1616        return $statuts;
    1717}
     
    2020        if(!$statut OR $statut=='rien'){
    2121                include_spip('inc/config');
    22                 if(!$statut=lire_config('reservation_evenement/statut_defaut'))$statut='attente';               
     22                if(!$statut=lire_config('reservation_evenement/statut_defaut'))$statut='attente';
    2323        }               
    2424        return $statut;
  • _plugins_/reservation_evenement/branches/v1/lang/reservation.xml

    r83605 r85420  
    11<traduction module="reservation" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/reservation_evenement/trunk/lang/" reference="fr">
    2         <langue code="de" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=de" total="109" traduits="96" relire="0" modifs="0" nouveaux="13" pourcent="88.07">
     2        <langue code="de" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=de" total="110" traduits="95" relire="0" modifs="0" nouveaux="15" pourcent="86.36">
    33                <traducteur nom="Rainer Müller" lien="http://trad.spip.net/auteur/rainer-muller" />
    44        </langue>
    5         <langue code="en" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=en" total="109" traduits="98" relire="0" modifs="0" nouveaux="11" pourcent="89.91">
     5        <langue code="en" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=en" total="110" traduits="97" relire="0" modifs="0" nouveaux="13" pourcent="88.18">
    66                <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
    77                <traducteur nom="Rainer Müller" lien="http://trad.spip.net/auteur/rainer-muller" />
    88        </langue>
    9         <langue code="fr" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=fr" total="109" traduits="109" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
     9        <langue code="fr" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=fr" total="110" traduits="110" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
     10        </langue>
     11        <langue code="pt_br" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=pt_br" total="110" traduits="96" relire="6" modifs="0" nouveaux="8" pourcent="87.27">
     12                <traducteur nom="telopa" lien="http://trad.spip.net/auteur/telopa" />
    1013        </langue>
    1114</traduction>
  • _plugins_/reservation_evenement/branches/v1/lang/reservation_de.php

    r83498 r85420  
    8686        'notifications_vendeur_email_explication' => 'Eine oder mehrere Emails, mit Komma abgetrennt, eingeben:',
    8787        'notifications_vendeur_email_label' => 'Email/s :',
    88         'notifications_vendeur_explication' => 'Empfänger für die Benachrichtigungen über Anmeldung auswählen',
    8988        'notifications_vendeur_label' => 'Reservant',
    9089        'notifications_vendeur_webmaster_label' => 'Eienen oder mehere Websmaster auswählen:',
  • _plugins_/reservation_evenement/branches/v1/lang/reservation_en.php

    r83498 r85420  
    8787        'notifications_vendeur_email_explication' => 'Enter one or more email separated by commas:',
    8888        'notifications_vendeur_email_label' => 'Emails for vendor alerts:',
    89         'notifications_vendeur_explication' => 'Choose (the) recipient(s) for the vendor alerts',
    9089        'notifications_vendeur_label' => 'Vendor',
    9190        'notifications_vendeur_webmaster_label' => 'Select one or more webmasters:',
  • _plugins_/reservation_evenement/branches/v1/lang/reservation_evenement.xml

    r78129 r85420  
    66        <langue code="fr" url="http://trad.spip.net/tradlang_module/reservation_evenement?lang_cible=fr" total="4" traduits="4" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
    77        </langue>
     8        <langue code="pt_br" url="http://trad.spip.net/tradlang_module/reservation_evenement?lang_cible=pt_br" total="4" traduits="2" relire="2" modifs="0" nouveaux="0" pourcent="50.00">
     9                <traducteur nom="telopa" lien="http://trad.spip.net/auteur/telopa" />
     10        </langue>
    811</traduction>
  • _plugins_/reservation_evenement/branches/v1/lang/reservation_fr.php

    r83605 r85420  
    7676        'notifications_client_explication' => 'Envoyer les notifications au client ?',
    7777        'notifications_client_label' => 'Client',
     78        'notifications_destinateur_label' => 'Destinateur',
     79        'notifications_destinateur_label_explication' => 'Choisir le(s) destinataire(s) des notifications',
    7880        'notifications_envoi_separe' => 'Activer le mode Envoi Séparé pour le statut :',
    7981        'notifications_envoi_separe_explication' => 'Permet de déclencher l’envoi des notifications pour chaque Détail de Résérvation séparément',
     
    9799        'notifications_vendeur_email_explication' => 'Saisir un ou plusieurs email séparés par des virgules :',
    98100        'notifications_vendeur_email_label' => 'Email(s) :',
    99         'notifications_vendeur_explication' => 'Choisir le(s) destinataire(s) des notifications pour les envois au vendeur',
    100101        'notifications_vendeur_label' => 'Vendeur',
    101102        'notifications_vendeur_webmaster_label' => 'Choisir un ou plusieurs webmestres :',
  • _plugins_/reservation_evenement/branches/v1/lang/reservations_detail.xml

    r79909 r85420  
    88        <langue code="fr" url="http://trad.spip.net/tradlang_module/reservations_detail?lang_cible=fr" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
    99        </langue>
     10        <langue code="pt_br" url="http://trad.spip.net/tradlang_module/reservations_detail?lang_cible=pt_br" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
     11                <traducteur nom="telopa" lien="http://trad.spip.net/auteur/telopa" />
     12        </langue>
    1013</traduction>
  • _plugins_/reservation_evenement/branches/v1/notifications/reservation_vendeur.php

    r83374 r85420  
    44
    55function notifications_reservation_vendeur_dist($quoi,$id_reservation, $options) {
    6     include_spip('inc/config');
    7     $config = lire_config('reservation_evenement');
     6        include_spip('inc/config');
     7        $config = lire_config('reservation_evenement');
    88
    9     $envoyer_mail = charger_fonction('envoyer_mail','inc');
    10    
    11     $options['id_reservation']=$id_reservation;
    12     $options['qui']='vendeur'; 
    13     $dest=(isset($config['vendeur_'.$config['vendeur']]) AND intval($config['vendeur_'.$config['vendeur']])) ?$config['vendeur_'.$config['vendeur']]:1;
    14    
    15     $sql=sql_select('email','spip_auteurs','id_auteur IN ('.implode(',',$dest).')');
    16     $email=array();
    17     while($data=sql_fetch($sql)){
    18         $email[]=$data['email'];       
    19         }
     9        $envoyer_mail = charger_fonction('envoyer_mail','inc');
     10       
     11        $options['id_reservation']=$id_reservation;
     12        $options['qui']='vendeur'; 
     13        $dest=(isset($config['vendeur_'.$config['vendeur']]) AND intval($config['vendeur_'.$config['vendeur']])) ?$config['vendeur_'.$config['vendeur']]:array(1);
     14       
     15        $sql=sql_select('email','spip_auteurs','id_auteur IN ('.implode(',',$dest).')');
     16        $email=array();
     17        while($data=sql_fetch($sql)){
     18                $email[]=$data['email'];
     19        }
    2020
    21     $subject=_T('reservation:une_reservation_sur',array('nom'=>$GLOBALS['meta']['nom_site']));   
     21        $subject=_T('reservation:une_reservation_sur',array('nom'=>$GLOBALS['meta']['nom_site']));   
    2222
    23     /*Chercher des chaines de langues spécifiques pour les différents statuts*/
    24     $lang=$options['lang'];
     23        /*Chercher des chaines de langues spécifiques pour les différents statuts*/     
     24        $lang=$options['lang'];
    2525
    26     $var_reservation = 'i18n_reservation_'.$lang;
    27     $chaine_statut='sujet_une_reservation_'.$options['statut'];
     26        $var_reservation = 'i18n_reservation_'.$lang;
     27        $chaine_statut='sujet_une_reservation_'.$options['statut'];
    2828
    29     if(isset($GLOBALS[$var_reservation][$chaine_statut]))$subject=_T('reservation:'.$chaine_statut,array('nom'=>$GLOBALS['meta']['nom_site'])); 
    30    
     29        if(isset($GLOBALS[$var_reservation][$chaine_statut]))$subject=_T('reservation:'.$chaine_statut,array('nom'=>$GLOBALS['meta']['nom_site'])); 
     30       
    3131
    32     $message=recuperer_fond('notifications/contenu_reservation_mail',$options);
    33      
    34     //
    35     // Envoyer les emails
    36     //
    37     //
    38     //
     32        $message=recuperer_fond('notifications/contenu_reservation_mail',$options);
     33         
     34        //
     35        // Envoyer les emails
     36        //
    3937
    40     $envoyer_mail($email,$subject,array(
    41         'html'=>$message)
    42        );
    43        
    44     // Si présent -  l'api de notifications_archive
    45      if ($archiver = charger_fonction('archiver_notification','inc',true)) {
    46                 $envoi='reussi';
    47                 if(!$envoyer_mail)$envoi='echec';
     38        $envoyer_mail($email,$subject,array(
     39                'html'=>$message)
     40        );
     41           
     42        // Si présent -  l'api de notifications_archive
     43        if ($archiver = charger_fonction('archiver_notification','inc',true)) {
     44                $envoi='reussi';
     45                if(!$envoyer_mail)$envoi='echec';
    4846
    49             $o=array(
    50                 'recipients'=>implode(',',$email),                         
    51                 'sujet'=>$subject,
    52                 'texte'=>$message,
    53                 'html'=>'oui',
    54                 'id_objet'=>$id_reservation,
    55                 'objet'=>'reservation',
    56                 'envoi'=>$envoi,
    57                 'type'=>$quoi);
    58                      
    59         $archiver ($o);
    60     }
     47                $o=array(
     48                        'recipients'=>implode(',',$email),                                               
     49                        'sujet'=>$subject,
     50                        'texte'=>$message,
     51                        'html'=>'oui',
     52                        'id_objet'=>$id_reservation,
     53                        'objet'=>'reservation',
     54                        'envoi'=>$envoi,
     55                        'type'=>$quoi
     56                );
     57                                         
     58                $archiver ($o);
     59        }
    6160
    6261}
  • _plugins_/reservation_evenement/branches/v1/paquet.xml

    r84286 r85420  
    22        prefix="reservation_evenement"
    33        categorie="date"
    4         version="1.13.4"
     4        version="1.13.5"
    55        etat="test"
    66        compatibilite="[3.0.16;3.0.*]"
     
    2929        <utilise nom="declinaisons" compatibilite="[1.0.3;]" />
    3030        <utilise nom="notifications_archive" compatibilite="[1.1.3;]" />
    31         <utilise nom="notifications_archive" compatibilite="[1.1.3;]" />                                       
    3231
    3332        <pipeline nom="autoriser" inclure="reservation_evenement_autorisations.php" />
  • _plugins_/reservation_evenement/trunk/paquet.xml

    r85275 r85420  
    2626        <necessite nom="facteur" compatibilite="[2.4.5;]" />
    2727        <necessite nom="spip_bonux" compatibilite="[3.0.5;]" />
    28         <necessite nom="prix_objets" compatibilite="[1.6.5;]" />
     28        <utilise nom="prix_objets" compatibilite="[1.6.5;]" />
    2929        <utilise nom="declinaisons" compatibilite="[1.0.3;]" />
    3030        <utilise nom="notifications_archive" compatibilite="[1.1.3;]" />
Note: See TracChangeset for help on using the changeset viewer.