source: spip-zone/_squelettes_/mediaspip/mediaspip_core/branches/v1/mediaspip_core_pipelines.php @ 88936

Last change on this file since 88936 was 88936, checked in by kent1@…, 5 years ago

Eviter un warning ici

File size: 6.5 KB
Line 
1<?php
2/**
3 * Plugin Mediaspip Core
4 *
5 * © 2010-2011 kent1 (kent1@arscenic.info)
6 * Distribué sous licence GNU/GPL v3
7 *
8 * Fichier des pipelines utilisés par le plugin
9 */
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12function mediaspip_core_mediaspip_extensions_lisibles($array){
13        $array['mp3'] = array('son');
14        $array['ogg'] = array('son,video');
15        $array['ogv'] = array('video');
16        $array['flv'] = array('son','video');
17        $array['mov'] = array('video');
18}
19
20/**
21 * On s'insère dans le pipeline styliser pour :
22 *
23 * -* Modifier la page auteur quand on est l'auteur en question
24 * -** La page auteur classique reste basé sur le squelette contenu/auteur.html
25 * -** La page auteur de la personne connectée est basé sur le squelette contenu/auteur-profil.html
26 *
27 * -* Modifier les squelettes des rubriques spécifiques à mediaspip
28 *
29 * @param array $flux le contexte donné à chaque page
30 */
31function mediaspip_core_styliser($flux){
32        $squelette = $flux['data'];
33        $fond = $flux['args']['fond'];
34        $ext = $flux['args']['ext'];
35        if(($flux['args']['id_rubrique'] > 0)
36                && in_array($flux['args']['contexte']['type'],array('article','rubrique'))){
37                $rubriques_specifiques = lire_config('mediaspip/rubriques',array());
38                $id_secteur = sql_getfetsel('id_secteur','spip_rubriques','id_rubrique='.$flux['args']['id_rubrique']);
39                foreach($rubriques_specifiques as $type_rubrique => $id_rubrique){
40                        if($id_secteur == $id_rubrique){
41                                $flux['args']['contexte']['composition'] = $type_rubrique;
42                        }
43                }
44                if (isset($flux['args']['contexte']['composition'])
45                  //AND substr($squelette,-strlen($fond))==$fond
46                  AND $f=find_in_path($fond."-".$flux['args']['contexte']['composition'].".$ext")){
47                        $flux['data'] = substr($f,0,-strlen(".$ext"));
48                }
49        }else if(
50                ($flux['args']['contexte']['type'] == 'auteur')
51                AND substr($squelette,-strlen($fond))==$fond
52                && (isset($GLOBALS['visiteur_session']['id_auteur']) && ($flux['args']['contexte']['id_auteur'] == $GLOBALS['visiteur_session']['id_auteur']))
53                && ($f=find_in_path($fond."-profil.".$ext))){
54                        $flux['data'] = substr($f,0,-strlen(".$ext"));
55        }
56        return $flux;
57}
58
59/**
60 * Insertion dans le pipeline post_edition
61 * - Invalide le cache lors de la modification d'objets
62 * L'invalideur est passé par défaut sur les articles et forums
63 * cf : ecrire/inc/modifier.php
64 *
65 * @param array $flux Le contexte du pipeline
66 */
67function mediaspip_core_post_edition($flux){
68        if($flux['args']['action'] == 'modifier'){
69                $id_table_objet = id_table_objet($flux['args']['type']);
70                $id = $flux['args']['id_objet'];
71                switch($flux['args']['type']){
72                        case 'auteur':
73                                $invalideur = "id='$id_table_objet/$id'";
74                }
75                if($invalideur){
76                        include_spip('inc/invalideur');
77                        suivre_invalideur($invalideur);
78                }
79        }
80        if(in_array($flux['args']['operation'], array('ajouter_document','document_copier_local','supprimer_document'))){
81                $id_document = $flux['args']['id_objet'];
82                if(in_array($id_document,lire_config('mediaspip_docs_perdus',array()))){
83                        $verifier_originaux = charger_fonction('mediaspip_verifier_originaux','inc');
84                        $verifier_originaux();
85                }
86        }
87        return $flux;
88}
89
90/**
91 * Insertion dans le pipeline bigbrother_journaliser du plugin bigbrother
92 * Ajoute la possibilité de journaliser les téléchargements de documents
93 *
94 * @param array $flux
95 */
96function mediaspip_core_bigbrother_journaliser($flux){
97        $flux['telecharger'] = _T('mediaspip_core:bigbrother_texte_telecharger');
98        return $flux;
99}
100
101/**
102 * Insertion de javascripts dans le head
103 *
104 * @param array $plugins
105 */
106function mediaspip_core_jquery_plugins($plugins){
107        $plugins[] = "javascript/jquery.equalheight.js";
108        $plugins[] = "javascript/mediaspip_base.js";
109        $plugins[] = "javascript/mediaspip_menu_categories.js";
110        $plugins[] = _DIR_LIB_SLIDER."js/easySlider1.7.js";
111        $plugins[] = _DIR_LIB_SVG."jquery.svg.js";
112       
113        return $plugins;
114}
115
116/**
117 * Insertion dans le pipeline editer_contenu_objet
118 * Enlève le champ de la clé PGP dans le formulaire de modification d'auteur
119 *
120 * @param array $flux
121 * @return array
122 */
123function mediaspip_core_editer_contenu_objet($flux){
124        $args = $flux['args'];
125        $type = $args['type'];
126        if (in_array($type,array('auteur')) && !test_espace_prive()){
127                if (preg_match(",<li [^>]*class=[\"']editer_pgp.*<\/li>,Uims",$flux['data'],$regs)){
128                        $flux['data'] = preg_replace(",(<li [^>]*class=[\"']editer_pgp.*<\/li>),Uims","",$flux['data'],1);
129                }
130                if (preg_match(",<div [^>]*class=[\"']instituer_auteur.*<\/div>,Uims",$flux['data'],$regs)){
131                        $flux['data'] = preg_replace(",(<div [^>]*class=[\"']instituer_auteur).*</div>(<\/li>),Uims","\\2",$flux['data'],1);
132                }
133        }
134        return $flux;
135}
136
137/**
138 * Insertion dans le pipeline formulaire_charger (SPIP)
139 *
140 * Vire le commentaire qui n'a pas de sens dans le formulaire d'inscription
141 *
142 * @param array $flux Le contexte d'environnement du pipeline
143 * @return array $flux Le contexte d'environnement modifié
144 */
145function mediaspip_core_formulaire_charger($flux){
146        $form = $flux['args']['form'];
147        if($form == 'inscription'){
148                $valeurs['_commentaire'] = '';
149                $flux['data'] = array_merge($flux['data'],$valeurs);
150        }
151        return $flux;
152}
153
154
155/**
156 * Insertion dans le pipeline taches_generales_cron (SPIP)
157 *
158 * Lance la maintenance de mediaspip à intervalle régulier
159 *
160 * @return L'array des taches complété
161 * @param array $taches_generales Un array des tâches du cron de SPIP
162 */
163function mediaspip_core_taches_generales_cron($taches_generales){
164        $taches_generales['mediaspip_maintenance'] = 24*3600;
165        return $taches_generales;
166}
167
168/**
169 * Insertion dans le pipeline recuperer_fond (SPIP)
170 * On ajoute des liens dans les fonds du type "inclure/diogene_modifier_publication_*"
171 * - Un lien vers la gestion des forums des articles par exemple
172 *
173 * @param array $flux
174 */
175function mediaspip_core_recuperer_fond($flux){
176        if(!test_espace_prive() && is_string($flux['args']['fond'])){
177                if (preg_match(',inclure\/diogene_modifier_publication_,i',$flux['args']['fond'])){
178                        global $visiteur_session;
179                        if(isset($visiteur_session['statut'])){
180                                $insert = recuperer_fond('inclure/diogene_modifier_ajouts',$flux['args']['contexte']);
181                                $pos_ul = strripos($flux['data']['texte'], '</ul>');
182                                $flux['data']['texte'] = substr_replace($flux['data']['texte'], $insert, $pos_ul, 0);
183                        }
184                }
185        }
186        return $flux;
187}
188
189/**
190 * Insertion dans le pipeline insert_head_css (SPIP)
191 * Ajoute des styles par défaut des plugins que l'on utilise :
192 * -* Forum
193 *
194 * @param $flux
195 */
196function mediaspip_core_insert_head_css($flux){
197        $flux .= '
198<link rel="stylesheet" href="'.direction_css(parametre_url(generer_url_public('mediaspip_core.css'),'ltr', $GLOBALS['spip_lang_left'])).'" type="text/css" media="all" />
199';
200        return $flux;
201}
202?>
Note: See TracBrowser for help on using the repository browser.