Changeset 88150 in spip-zone


Ignore:
Timestamp:
Mar 22, 2015, 4:56:59 PM (5 years ago)
Author:
abelass@…
Message:

Appliquer les zones aux différent points utiles

Location:
_plugins_/reservation_evenement/branches/v1
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/reservation_evenement/branches/v1/formulaires/inc-action_cloture.html

    r86151 r88150  
    77        <li><:reservation:evenement_cloture:></li>
    88})]
    9        
  • _plugins_/reservation_evenement/branches/v1/formulaires/reservation.php

    r85541 r88150  
    1414
    1515function formulaires_reservation_charger_dist($id='',$id_article=''){
    16 
    17         // si pas d'evenement ou d'inscription, on echoue silencieusement
     16        include_spip('inc/config');
     17        include_spip('formulaires/selecteur/generique_fonctions');
    1818       
    19         $where=array('date_fin>NOW() AND inscription=1 AND statut="publie"');
    20         if($id){
    21                 if(!is_array($id))array_push($where,'id_evenement='.intval($id));
    22                 elseif(is_array($id))array_push($where,'id_evenement IN ('.implode(',',$id).')');
    23         }
    24         if($id_article){
    25                 if(!is_array($id_article)) array_push($where,'id_article='.intval($id_article));   
    26                 elseif(is_array($id_article))array_push($where,'id_article IN '.implode(',',$id_article).')');
     19        //Si l'affichage n'est pas déjà définie on établit si une zone s'applique
     20        if(!$id_article AND !$id){
     21                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                               
    2736        }
    2837
    29         $sql = sql_select('*','spip_evenements',$where,'','date_debut,date_fin');
     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        }
    3061
    31         $evenements=array();
    32         $articles=array();
    33         while ($row=sql_fetch($sql)){
    34                 $evenements[$row['id_evenement']]=$row;
    35                 $articles[]=$row['id_article'];
    36         }
    3762       
    3863
  • _plugins_/reservation_evenement/branches/v1/inc/reservation_evenements.php

    r88123 r88150  
    44if (!defined('_ECRIRE_INC_VERSION')) return;
    55
    6 //Teste si on est en présence d'une zone reservation événement
    7 function rubrique_reservation($id,$objet,$rubrique_reservation=''){
     6/**
     7 * Teste si l'objet est dans la zone Réservation Evenement
     8 *
     9 * @param  int $id Id de l'objet
     10 * @param  string $objet L'objet
     11 * @param  array $rubrique_reservation Les rubriques de la zone Réservation Évènement
     12 * @param  array $options Possible valeur array(
     13 *                                                                                              'tableau'=>'oui',
     14 *                                                                                              'where'=>'requete sql',
     15 *                                                                                              'select=>'les champs',
     16 *                                                                                              'resultat=>'par_id')
     17 * @return Bolean/array   array si $options['tableau']=oui
     18 */
     19function rubrique_reservation($id='',$objet,$rubrique_reservation='',$options=array()){
    820        //On récupère la config si pas passé comme variable
    921        if(!$rubrique_reservation){
    1022                include_spip('inc/config');
    1123                include_spip('formulaires/selecteur/generique_fonctions');
     24                include_spip('inc/rubriques');         
    1225                $config=lire_config('reservation_evenement/',array());
    1326                $rubrique_reservation=isset($config['rubrique_reservation'])?picker_selected($config['rubrique_reservation'],'rubrique'):'';
    1427        }
     28        //Chercher les rubriques de la branche
     29        if(is_array($rubrique_reservation))$rubrique_reservation=explode(',',calcul_branche_in($rubrique_reservation));
    1530       
    16         //Si une zone a  été définit
     31
     32        //Si une zone a été définit
    1733        if(is_array($rubrique_reservation) and count($rubrique_reservation)!=0){
    18                 //On établit les id selon l'objet
    19                 if($objet=='article'){
    20                         $sql=sql_select('id_article','spip_articles','statut="publie" AND id_rubrique IN ('.implode($rubrique_reservation).')');
     34               
     35                //Teste si l'objet se trouve dans la zone
     36                if($id){
     37                        //On teste si l'objet se trouve dans la zone
     38                        if($objet=='article'){
     39                                $select='id_article';
     40                                $from=array('spip_articles');
     41                                $where=array('id_article='.$id.' AND id_rubrique IN ('.implode(',',$rubrique_reservation).')');                         
     42                        }
     43                        elseif($objet=='evenement'){
     44                                $select='e.id_evenement';
     45                                $from=array('spip_evenements AS e INNER JOIN spip_articles AS a ON e.id_article=a.id_article');
     46                                $where=array('e.id_evenement='.$id.' AND a.id_rubrique IN ('.implode(',',$rubrique_reservation).')');
     47                        }
     48                        elseif($objet=='rubrique'){
     49                                $select='id_rubrique';
     50                                $from=array('spip_rubriques');
     51                                $where=array('id_rubrique='.$id.' AND id_rubrique IN ('.implode(',',$rubrique_reservation).')');                               
     52                        }
     53                        if(isset($options['e.id_evenement']))array_push($where,$options['where']);
     54                                       
     55                        if(sql_getfetsel($select,$from,$where)) $return=true; //Objet se trouve dans la zone
     56                        else $return=false;//Objet ne se trouve pas dans la zone
     57                       
    2158                }
    22                 elseif($objet=='evenement'){
    23                         $sql=sql_select('e.id_evenement','spip_evenements AS e INNER JOIN spip_articles AS a ON e.id_article=a.id_article','e.id_evenement_source=0 AND a.statut="publie" AND e.statut="publie" AND a.id_rubrique IN ('.implode(',',$rubrique_reservation).')');
     59                //Afficher les id_articles se trouvant dans la zone
     60                elseif(isset($options['tableau']) AND $options['tableau']=='oui'){
     61                        //On teste si l'objet se trouve dans la zone
     62                        if($objet=='article'){
     63                                $select=array('id_article');
     64                                $from=array('spip_articles');
     65                                $where=array('id_rubrique IN ('.implode(',',$rubrique_reservation).')');                               
     66                        }
     67                        if($objet=='evenement'){
     68                                $select=array('e.id_evenement');
     69                                $from=array('spip_evenements AS e INNER JOIN spip_articles AS a ON e.id_article=a.id_article');
     70                                $where=array('e.id_evenement_source=0 AND a.id_rubrique IN ('.implode(',',$rubrique_reservation).')');
     71                        }
     72                        if($objet=='rubrique'){
     73                                $select=array('id_rubrique');
     74                                $from=array('spip_rubriques');
     75                                $where=array('id_rubrique IN ('.implode(',',$rubrique_reservation).')');       
     76                        }
     77                        if(isset($options['where']))array_push($where,$options['where']);
     78                        if(isset($options['select'])){
     79                                if($options['select'] != '*')array_push($where,$options['where']);
     80                                else $select=$options['select'];
     81                                }                       
     82                                                               
     83                        $sql=sql_select($select,$from,$where);
     84                       
     85                        $ids=array();
     86                        if(!isset($options['resultat'])){
     87                                while($data=sql_fetch($sql)){
     88                                        $ids[]=$data['id_'.$objet];
     89                                }
     90                        }
     91                        elseif($options['resultat']=='par_id'){
     92                               
     93                                while($data=sql_fetch($sql)){
     94                                        $ids[$data['id_evenement']]=$data;
     95                                }                                       
     96                        }
     97                        $return=$ids;
    2498                }
    25                
    26                 $ids=array();
    27                 if($sql){
    28                         while($data=sql_fetch($sql)){
    29                                 if(!in_array($data['id_'.$objet],$ids))$ids[]=$data['id_'.$objet];
    30                         }                               
    31                 }
    32                 if(in_array($id,$ids))return true; //Si l'id courent est compris dans les ids dce l'objet on affiche
    33                 else return false;//Sinon on n'affice pas
    3499        }
    35         else return true; //Si pas de zone on affiche tout
     100        elseif(!isset($options['tableau'])) $return=true; //Test sur objet, pas de zone définit
     101        elseif(isset($options['tableau'])) $return=false; //Affichage tableau, pas de zone définit donc pas de résultat
     102
     103        return $return;
    36104}
  • _plugins_/reservation_evenement/branches/v1/lang/reservation.xml

    r88123 r88150  
    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="121" traduits="95" relire="0" modifs="0" nouveaux="26" pourcent="78.51">
     2        <langue code="de" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=de" total="124" traduits="95" relire="0" modifs="0" nouveaux="29" pourcent="76.61">
    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="121" traduits="103" relire="0" modifs="0" nouveaux="18" pourcent="85.12">
     5        <langue code="en" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=en" total="124" traduits="103" relire="0" modifs="0" nouveaux="21" pourcent="83.06">
    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="121" traduits="121" 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="124" traduits="124" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
    1010        </langue>
    11         <langue code="pt_br" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=pt_br" total="121" traduits="96" relire="6" modifs="0" nouveaux="19" pourcent="79.34">
     11        <langue code="pt_br" url="http://trad.spip.net/tradlang_module/reservation?lang_cible=pt_br" total="124" traduits="96" relire="6" modifs="0" nouveaux="22" pourcent="77.42">
    1212                <traducteur nom="telopa" lien="http://trad.spip.net/auteur/telopa" />
    1313        </langue>
  • _plugins_/reservation_evenement/branches/v1/lang/reservation_fr.php

    r88123 r88150  
    1616        'choix_precis' => 'Choix précis',
    1717        'cron_explication' => 'Pour tout événement ayant activé la clôture automatique. Quand l’événement de la résérvation est passé, la réservation sera automatiquement clôturée par le système. Si "clôturé" est choisis sous "Déclenchement", un email de clôture sera alors envoyé. Videz le cache afin que cela soit bien activé. ',
    18         'cron_fieldset' => 'Clôture automatique',       
     18        'cron_fieldset' => 'Clôture automatique',
    1919        'cron_label' => 'Clôturer automatiquement une réservation',
    2020
     
    127127        'reservation_numero' => 'Réservation :',
    128128        'reservation_reference_numero' => 'Référence n° ',
    129         'rubrique_reservation_label' => 'Définir une/des zones pour l\'application de ce plugin',
    130         'rubrique_reservation_explication' => 'Limite par example l\'affichage de certains champs extras à cette/ces zone/s',           
     129        'rubrique_reservation_explication' => 'Permet de restreindre l\'application de ce plugin au/x zone/s définie/s',
     130        'rubrique_reservation_label' => 'Définir une/des zones pour l’application de ce plugin',
    131131
    132132        // S
  • _plugins_/reservation_evenement/branches/v1/paquet.xml

    r88123 r88150  
    22        prefix="reservation_evenement"
    33        categorie="date"
    4         version="1.16.0"
     4        version="1.16.1"
    55        etat="test"
    66        compatibilite="[3.0.16;3.1.*]"
  • _plugins_/reservation_evenement/branches/v1/prive/objets/contenu/inc-action_cloture.html

    r86151 r88150  
    33    <span dir='#LANG_DIR' class='email'>(#CLOTURE_ETAT)</span>
    44</div>]
    5 
  • _plugins_/reservation_evenement/branches/v1/reservation_evenement_pipelines.php

    r88123 r88150  
    2424
    2525        if (in_array($exec, $objets_affichage)) {
     26                include_spip('inc/config');
     27                include_spip('formulaires/selecteur/generique_fonctions');
     28                include_spip('inc/reservation_evenements');             
     29               
     30                $config=lire_config('reservation_evenement/rubrique_reservation');
    2631                $contexte = array();
    2732                $contexte['id_article'] = intval($flux['args']['id_article']) ? $flux['args']['id_article'] : '';
    2833                $contexte['id_rubrique'] = intval($flux['args']['id_rubrique']) ? $flux['args']['id_rubrique'] : '';
    29                 $contexte['id_evenement'] = intval($flux['args']['id_evenement']) ? $flux['args']['id_evenement'] : '';
    30 
    31                 $flux['data'] .= recuperer_fond('inclure/reservations', $contexte);
     34                $contexte['id_evenement'] = intval($flux['args']['id_evenement']) ? $flux['args']['id_evenement'] : '';         
     35                $id=$contexte['id_'.$exec];
     36                $rubrique_reservation=picker_selected($config,'rubrique');
     37                $zone=rubrique_reservation($id,$exec,$rubrique_reservation);
     38               
     39                //Si l'objet se trouve dans la zone Reservation Evènement, on affiche
     40                if($zone){
     41                        $flux['data'] .= recuperer_fond('inclure/reservations', $contexte);
     42                }
    3243        }
    3344        return $flux;
     
    133144function reservation_evenement_recuperer_fond($flux){
    134145    $fond=$flux['args']['fond'];
     146       
    135147        $contexte=$flux['data']['contexte'];
    136         $fonds=array('formulaires/editer_article'=>'article','formulaires/editer_evenement'=>'evenement');
     148        $fonds=array(
     149                'formulaires/editer_article'=>'article',
     150                'formulaires/editer_evenement'=>'evenement'
     151                );
    137152        //Ajouter le champ action_cloture
    138153    if (isset($fonds[$fond])){
     154       
    139155                include_spip('inc/config');
    140156                include_spip('formulaires/selecteur/generique_fonctions');
    141157                include_spip('inc/reservation_evenements');             
    142158                $config=lire_config('reservation_evenement',array());
     159               
    143160                $type=$fonds[$fond];
    144161                $rubrique_reservation=isset($config['rubrique_reservation'])?picker_selected($config['rubrique_reservation'],'rubrique'):'';
    145162                $id=_request('id_'.$type);
    146 
    147163                $zone=rubrique_reservation($id,$type,$rubrique_reservation);
    148                
    149164                $cron=isset($config['cron'])?$config['cron']:'';
    150                
     165                //Si cron activé et l'objet se trouve dans la zone Reservation Evènement, on affiche
    151166                if($cron AND $zone){
    152167                $action_cloture='<ul>'.recuperer_fond('formulaires/inc-action_cloture',$contexte).'</ul>';
    153168                $flux['data']['texte'] = str_replace('<!--extra-->',$action_cloture. '<!--extra-->',$flux['data']['texte']);
    154                 }
     169                }
    155170    }   
    156171    return $flux;
     
    167182                include_spip('formulaires/selecteur/generique_fonctions');
    168183                include_spip('inc/reservation_evenements');             
     184               
    169185                $config=lire_config('reservation_evenement',array());
    170186                $rubrique_reservation=isset($config['rubrique_reservation'])?picker_selected($config['rubrique_reservation'],'rubrique'):'';
    171187                $id=_request('id_'.$type);
    172 
    173                 $zone=rubrique_reservation($id,$type,$rubrique_reservation);
    174                
     188                $zone=rubrique_reservation($id,$type,$rubrique_reservation);           
    175189                $cron=isset($config['cron'])?$config['cron']:'';
     190               
     191                //Si cron activé et l'objet se trouve dans la zone Reservation Evènement, on affiche
    176192                if($cron AND $zone){
    177                                                 $etats=array(
     193                        $etats=array(
    178194                                1=>_T('item:oui'),
    179195                                2=>_T('item:non'),
    180196                                3=>_T('reservation:evenement_cloture')
    181                         );
    182                        
     197                                );                     
    183198                       
    184199                        $action_cloture=sql_getfetsel('action_cloture','spip_'.$type.'s','id_'.$type.'='.$type=$flux['args']['id_objet']);
    185200                        if($action_cloture!=0)$contexte['cloture_etat']=$etats[$action_cloture];
    186201                        $action_cloture = recuperer_fond('prive/objets/contenu/inc-action_cloture',$contexte);
    187                         $flux['data'] .= "\n".$action_cloture;
    188                                
     202                        $flux['data'] .= "\n".$action_cloture;                         
    189203                }               
    190204
Note: See TracChangeset for help on using the changeset viewer.