source: spip-zone/_plugins_/bigbrother/trunk/bigbrother_pipelines.php @ 70278

Last change on this file since 70278 was 70278, checked in by rastapopoulos@…, 7 years ago

Des inclusions manquantes qui faisaient râler ma config PHP.

File size: 5.0 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5/**
6 * Insertion dans le pipeline boite_infos (SPIP)
7 *
8 * Affiche un lien vers la page de statistiques de l'auteur sur sa page auteur
9 * Affiche un lien vers la page de statistiques de l'article sur la page article
10 *
11 * @param array $flux Le contexte du pipeline
12 * @return array $flux Le contexte modifié
13 */
14function bigbrother_boite_infos($flux){
15        if (($flux['args']['type'] =='auteur') AND ($id_auteur = $flux['args']['id']) AND ($id_auteur > 0)){
16                        $icone_horizontale = chercher_filtre('icone_horizontale');
17                        $flux['data'] .= $icone_horizontale(generer_url_ecrire("journal_stats","id_auteur=$id_auteur"), _T('bigbrother:voir_statistiques_auteur'), "bigbrother-24.png");
18        }
19        if (($flux['args']['type'] =='article') AND ($id_article = $flux['args']['id']) AND ($id_article > 0)){
20                        $icone_horizontale = chercher_filtre('icone_horizontale');
21                        $flux['data'] .= $icone_horizontale(generer_url_ecrire("bigbrother_visites_articles_auteurs","id_article=$id_article"),_T('bigbrother:voir_statistiques_article'),"bigbrother-24.png");
22        }
23  return $flux;
24}
25
26function bigbrother_insert_head($flux){
27        $flux .= '
28<link rel="stylesheet" media="all" type="text/css" href="'.find_in_path('bigbrother.css', 'css/', false).'" />
29';
30        return $flux;
31}
32
33function bigbrother_header_prive($flux){
34        $flux .= '
35<link rel="stylesheet" media="all" type="text/css" href="'.find_in_path('bigbrother.css', 'css/', false).'" />
36';
37        return $flux;
38}
39
40/**
41 * Insertion dans le pipeline post_edition
42 * On ajoute la journalisation pour la modification de contenu
43 * ainsi que pour l'institution (changement de statut) d'objets
44 * @param unknown_type $flux
45 */
46function bigbrother_post_edition($flux){
47        $infos = array();
48       
49        // Dans tous les cas, on cherche déjà quelle est *vraiment* l'action qui vient d'être faite
50        if($flux['args']['action'] == 'instituer'){
51                $faire = 'instituer';
52                $texte = 'bigbrother:action_instituer_objet';
53        }else if(!isset($flux['args']['action']) && isset($flux['args']['operation'])){
54                if($flux['args']['operation'] == 'ajouter_document'){
55                        $faire = 'inserer';
56                        $texte = "bigbrother:action_".$flux['args']['operation'];
57                }else{
58                        $faire = $flux['args']['operation'];
59                        $texte = "bigbrother:action_$faire";
60                }
61        }
62        else{
63                $faire = 'modifier';
64                $texte = 'bigbrother:action_modifier_objet';
65                /**
66                 * Les actions de modifications passent un array à $flux['data'] des champs modifiés
67                 * On le serialize pour son insertion future en base
68                 */
69                if(is_array($flux['data'])){
70                        $infos['modifs'] = $flux['data'];
71                }
72        }
73       
74        // Suivant l'action, on ne teste pas la même configuration
75        $config_a_tester = $faire;
76        if (!in_array($config_a_tester, array('inserer', 'modifier', 'instituer'))){
77                $config_a_tester = 'modifier';
78        }
79        if(include_spip('inc/config') and lire_config("bigbrother/$config_a_tester")){
80                // On cherche qui et sur quoi porte l'action
81                $qui = $GLOBALS['visiteur_session']['nom'] ? $GLOBALS['visiteur_session']['nom'] : $GLOBALS['ip'];
82                $qui_ou_ip = $GLOBALS['visiteur_session']['id_auteur'] ? $GLOBALS['visiteur_session']['id_auteur'] : $GLOBALS['ip'];
83
84                $quoi = $flux['args']['type'];
85                if(!$quoi){
86                        $table = $flux['args']['table'];
87                        $quoi = objet_type($table);
88                }
89                $id_objet = $flux['args']['id_objet'];
90               
91                // On ne continue que si on a toutes les infos
92                if ($faire and $qui_ou_ip and $quoi and $id_objet){
93                        $journal = charger_fonction('journal','inc');
94                        $texte_infos = array('qui'=>$qui,'type'=> $quoi,'id'=>$id_objet);
95                        $id_journal = $journal(
96                                _T($texte,$texte_infos),
97                                array('qui' => $qui_ou_ip,'faire' => $faire,'quoi' => $quoi,'id' => $id_objet,'infos' => $infos)
98                        );
99                }
100        }
101        return $flux;
102}
103
104/**
105 * Insertion dans le pipeline post_insertion
106 * On ajoute la journalisation pour la création de contenu
107 * @param unknown_type $flux
108 */
109function bigbrother_post_insertion($flux){
110        if(include_spip('inc/config') and lire_config('bigbrother/inserer')){
111                $qui = $GLOBALS['visiteur_session']['nom'] ? $GLOBALS['visiteur_session']['nom'] : $GLOBALS['ip'];
112                $qui_ou_ip = $GLOBALS['visiteur_session']['id_auteur'] ? $GLOBALS['visiteur_session']['id_auteur'] : $GLOBALS['ip'];
113
114                $table = $flux['args']['table'];
115                $quoi = objet_type($table);
116                $id_objet = $flux['args']['id_objet'];
117                $faire = 'inserer';
118                $texte = 'bigbrother:action_inserer_objet';
119               
120                // On ne continue que si on a toutes les infos
121                if ($faire and $qui_ou_ip and $quoi and $qui){
122                        $journal = charger_fonction('journal','inc');
123                        $texte_infos = array('qui'=>$qui,'type'=> $quoi,'id'=>$id_objet);
124                        $journal(
125                                _T($texte,$texte_infos),
126                                array('qui' => $qui_ou_ip,'faire' => $faire,'quoi' => $quoi,'id' => $id_objet)
127                        );
128                }
129        }
130}
131
132function bigbrother_jquery_plugins($array){
133        $array[] = _DIR_LIB_FLOT.'/jquery.flot.js';
134        $array[] = 'javascript/flot_extras.js';
135        return $array;
136}
137
138function bigbrother_affichage_final($flux){
139        // Si la config est ok, à chaque hit, on teste s'il faut enregistrer la visite ou pas
140        if (include_spip('inc/config') and lire_config('bigbrother/visite') == 'oui')
141                bigbrother_tester_la_visite_du_site();
142        return $flux;
143}
144?>
Note: See TracBrowser for help on using the repository browser.