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

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

Nettoyage de tous le pipelines qui ne sont plus utiles dans la v3 de SPIP :
les fonctionnalites sont nativement prises en charge suite a la declaration dans declarer_tables_objets_sql

File size: 4.1 KB
Line 
1<?php
2
3/**
4 * Inserer les infos d'agenda sur les articles et rubriques
5 *
6 * @param array $flux
7 * @return array
8 */
9function agenda_affiche_milieu($flux) {
10        $e = trouver_objet_exec($flux['args']['exec']);
11        $out = "";
12        if ($e['type']=='rubrique'
13          AND $e['edition']==false
14          AND $id_rubrique = intval($flux['args']['id_rubrique'])){
15                $activer = true;
16                $res = "";
17                $actif = sql_getfetsel('agenda','spip_rubriques','id_rubrique='.intval($id_rubrique));
18                $statut="-32";
19                $alt = "";
20                $voir = "";
21                if (!sql_countsel('spip_rubriques','agenda=1'))
22                        $res .= "<span class='small'>" . _T('agenda:aucune_rubrique_mode_agenda') . "</span><br />";
23                else {
24                        include_spip('inc/agenda_gestion');
25                        if (sql_countsel('spip_rubriques',sql_in('id_rubrique',calcul_hierarchie_in($id_rubrique))." AND agenda=1 AND id_rubrique<>".intval($id_rubrique))){
26                                $alt = _T('agenda:rubrique_dans_une_rubrique_mode_agenda');
27                                $activer = false;
28                                $statut="-ok-32";
29                                $voir = _T('agenda:voir_evenements_rubrique');
30                        }
31                        elseif(!$actif) {
32                                $alt = _T('agenda:rubrique_sans_gestion_evenement').'<br />';
33                                $statut="-non-32";
34                        }
35                        if ($actif){
36                                $alt = _T('agenda:rubrique_mode_agenda').'<br />';
37                                $statut="-ok-32";
38                                $voir = _T('agenda:voir_evenements_rubrique');
39                        }
40                }
41
42                if (!$actif){
43                        if($activer){
44                                $res .= bouton_action(_T('agenda:rubrique_activer_agenda'),generer_action_auteur('rubrique_activer_agenda',$id_rubrique,self()),'ajax');
45                        }
46                }
47                else
48                        $res .= bouton_action(_T('agenda:rubrique_desactiver_agenda'),generer_action_auteur('rubrique_activer_agenda',"-$id_rubrique",self()),'ajax');
49                if ($voir)
50                        $res .= " | <a href='".generer_url_ecrire('evenements',"id_rubrique=$id_rubrique")."'>$voir</a>";
51                if ($res)
52                        $out .= boite_ouvrir(_T('agenda:agenda').http_img_pack("agenda$statut.png",$alt,"class='statut'",$alt),'simple agenda-statut')
53                          . $res
54                          . boite_fermer();
55        }
56        elseif ($e['type']=='article'
57          AND $e['edition']==false){
58                $id_article = $flux['args']['id_article'];
59                if (autoriser('creerevenementdans','article',$id_article)) {
60                        $out .= recuperer_fond('prive/objets/contenu/article-evenements',$flux['args']);
61                }
62        }
63
64        if ($out){
65                if ($p=strpos($flux['data'],'<!--affiche_milieu-->'))
66                        $flux['data'] = substr_replace($flux['data'],$out,$p,0);
67                else
68                        $flux['data'] .= $out;
69        }
70        return $flux;
71}
72
73/**
74 * Optimiser la base (evenements a la poubelle, lies a des articles disparus, ou liens mots sur evenements disparus)
75 *
76 * @param array $flux
77 * @return array
78 */
79function agenda_optimiser_base_disparus($flux){
80
81        # passer a la poubelle
82        # les evenements lies a un article inexistant
83        $res = sql_select("DISTINCT evenements.id_article","spip_evenements AS evenements
84                        LEFT JOIN spip_articles AS articles
85                        ON evenements.id_article=articles.id_article","articles.id_article IS NULL");
86        while ($row = sql_fetch($res))
87                sql_updateq("spip_evenements",array('statut'=>'poubelle'),"id_article=".$row['id_article']);
88
89        // Evenements a la pouvelle
90        sql_delete("spip_evenements", "statut='poubelle' AND maj < ".$flux['args']['date']);
91
92        include_spip('action/editer_liens');
93        // optimiser les liens de tous les mots vers des objets effaces
94        // et depuis des mots effaces
95        $flux['data'] += objet_optimiser_liens(array('mot'=>'*'),array('evenement'=>'*'));
96
97        return $flux;
98}
99
100
101/**
102 * Lister les evenements dans le calendrier de l'espace prive (extension organiseur)
103 *
104 * @param array $flux
105 * @return array
106 */
107function agenda_quete_calendrier_prive($flux){
108        $quoi = $flux['args']['quoi'];
109        if (!$quoi OR $quoi=='evenements'){
110                $start = sql_quote($flux['args']['start']);
111                $end = sql_quote($flux['args']['end']);
112                $res = sql_select('*','spip_evenements AS E',"((E.date_fin >= $start OR E.date_debut >= $start) AND E.date_debut <= $end)");
113                while ($row = sql_fetch($res)){
114                        $flux['data'][] = array(
115                                'id' => $row['id_evenement'],
116                                'title' => $row['titre'],
117                                'allDay' => false,
118                                'start' => $row['date_debut'],
119                                'end' => $row['date_fin'],
120                                'url' => str_replace("&amp;","&",generer_url_entite($row['id_evenement'],'evenement')),
121                                'className' => "calendrier-event evenement calendrier-couleur5",
122                                'description' => $row['descriptif'],
123                        );
124                }
125        }
126        return $flux['data'];
127}
128?>
Note: See TracBrowser for help on using the repository browser.