source: spip-zone/_plugins_/agenda/trunk/agenda_pipelines.php @ 54002

Last change on this file since 54002 was 54002, checked in by cedric@…, 8 years ago

rangement
retablir la page des evenements en squelette
lien vers l'article depuis la boite info d'un evenement,
retablir le fonctionnement de la liste des evenements
bouton action pour supprimer un evenement

File size: 4.9 KB
Line 
1<?php
2
3function agenda_ajouter_onglets($flux) {
4        if($flux['args']=='calendrier' AND !defined('_DIR_PLUGIN_BANDO')){
5                $flux['data']['agenda']= new Bouton(chemin_image('agenda-24.png'), _T('agenda:agenda'),
6                                                                                                                generer_url_ecrire("calendrier","type=semaine"));
7                $flux['data']['calendrier']= new Bouton(
8                                                                                                         'cal-rv.png', _T('agenda:activite_editoriale'),
9                                                                                                         generer_url_ecrire("calendrier","mode=editorial&type=semaine"));
10        }
11        return $flux;
12}
13
14function agenda_affiche_milieu($flux) {
15        $e = trouver_objet_exec($flux['args']['exec']);
16        $out = "";
17        if ($e['type']=='rubrique'
18          AND $e['edition']==false
19          AND $id_rubrique = intval($flux['args']['id_rubrique'])){
20                $activer = true;
21                $res = "";
22                $actif = sql_getfetsel('agenda','spip_rubriques','id_rubrique='.intval($id_rubrique));
23                $statut="-32";
24                $alt = "";
25                $voir = "";
26                if (!sql_countsel('spip_rubriques','agenda=1'))
27                        $res .= "<span class='small'>" . _T('agenda:aucune_rubrique_mode_agenda') . "</span><br />";
28                else {
29                        include_spip('inc/agenda_gestion');
30                        if (sql_countsel('spip_rubriques',sql_in('id_rubrique',calcul_hierarchie_in($id_rubrique))." AND agenda=1 AND id_rubrique<>".intval($id_rubrique))){
31                                $alt = _T('agenda:rubrique_dans_une_rubrique_mode_agenda');
32                                $activer = false;
33                                $statut="-ok-32";
34                                $voir = _T('agenda:voir_evenements_rubrique');
35                        }
36                        elseif(!$actif) {
37                                $alt = _T('agenda:rubrique_sans_gestion_evenement').'<br />';
38                                $statut="-non-32";
39                        }
40                        if ($actif){
41                                $alt = _T('agenda:rubrique_mode_agenda').'<br />';
42                                $statut="-ok-32";
43                                $voir = _T('agenda:voir_evenements_rubrique');
44                        }
45                }
46
47                if (!$actif){
48                        if($activer){
49                                $res .= bouton_action(_T('agenda:rubrique_activer_agenda'),generer_action_auteur('rubrique_activer_agenda',$id_rubrique,self()),'ajax');
50                        }
51                }
52                else
53                        $res .= bouton_action(_T('agenda:rubrique_desactiver_agenda'),generer_action_auteur('rubrique_activer_agenda',"-$id_rubrique",self()),'ajax');
54                if ($voir)
55                        $res .= " | <a href='".generer_url_ecrire('calendrier',"id_rubrique=$id_rubrique")."'>$voir</a>";
56                if ($res)
57                        $out .= boite_ouvrir(_T('agenda:agenda').http_img_pack("agenda$statut.png",$alt,"class='statut'",$alt),'simple agenda-statut')
58                          . $res
59                          . boite_fermer();
60        }
61        elseif ($e['type']=='article'
62          AND $e['edition']==false){
63                $id_article = $flux['args']['id_article'];
64                $afficher = autoriser('creerevenementdans','article',$id_article);
65                if ($afficher) {
66                        $contexte = array();
67                        foreach($_GET as $key=>$val)
68                                $contexte[$key] = $val;
69                         $evenements = recuperer_fond('prive/objets/contenu/article-evenements',$contexte);
70                         $out .= $evenements;
71                }
72        }
73        elseif ($e['type']=='mot'
74          AND $e['edition']==false
75          AND $id_mot = intval($flux['args']['id_mot'])){
76                foreach($_GET as $key=>$val)
77                        $contexte[$key] = $val;
78         $evenements = recuperer_fond('prive/contenu/agenda_evenements',$contexte);
79         $out .= $evenements;
80        }
81        if ($out){
82                if ($p=strpos($flux['data'],'<!--affiche_milieu-->'))
83                        $flux['data'] = substr_replace($flux['data'],$out,$p,0);
84                else
85                        $flux['data'] .= $out;
86        }
87        return $flux;
88}
89
90function agenda_taches_generales_cron($taches_generales){
91        $taches_generales['agenda_nettoyer_base'] = 3600*48;
92        return $taches_generales;
93}
94
95function agenda_editer_contenu_objet($flux){
96        if ($flux['args']['type']=='groupe_mot'){
97                // ajouter l'input sur les evenements
98                $checked = in_array('evenements',$flux['args']['contexte']['tables_liees']);
99                $checked = $checked?" checked='checked'":'';
100                $input = "<div class='choix'><input type='checkbox' class='checkbox' name='tables_liees&#91;&#93;' value='evenements'$checked id='evenements' /><label for='evenements'>"._T('agenda:item_mots_cles_association_evenements')."</label></div>";
101                $flux['data'] = str_replace('<!--choix_tables-->',"$input\n<!--choix_tables-->",$flux['data']);
102        }
103        return $flux;
104}
105
106function agenda_libelle_association_mots($libelles){
107        $libelles['evenements'] = 'agenda:info_evenements';
108        return $libelles;
109}
110
111
112function agenda_objets_extensibles($objets){
113                return array_merge($objets, array('evenement' => _T('agenda:evenements')));
114}
115
116function agenda_afficher_nombre_objets_associes_a($flux){
117        if ($flux['args']['objet']=='mot'
118          AND $id_mot=$flux['args']['id_objet']){
119                $aff_articles = sql_in('A.statut',  ($GLOBALS['connect_statut'] =="0minirezo")  ? array('prepa','prop','publie') : array('prop','publie'));
120                $nb = sql_countsel("spip_mots_liens AS L LEFT JOIN spip_evenements AS E ON E.id_evenement=L.id_objet AND L.objet='evenement' LEFT JOIN spip_articles AS A ON E.id_article=A.id_article", "L.id_mot=".intval($id_mot)." AND $aff_articles");
121                if ($nb)
122                        $flux['data'][] = singulier_ou_pluriel($nb, "agenda:info_un_evenement", "agenda:info_nombre_evenements");
123        }
124        return $flux;
125}
126
127/**
128 * Declarer evenement comme un objet interpretable dans les url
129 * ?evenement12
130 *
131 * @param array $objets
132 * @return array
133 */
134function agenda_declarer_url_objets($objets){
135        $objets[] = 'evenement';
136        return $objets;
137}
138?>
Note: See TracBrowser for help on using the repository browser.