[SPIP] +2.1.12
[velocampus/web/www.git] / www / extensions / porte_plume / porte_plume_pipelines.php
1 <?php
2 /*
3 * Plugin Porte Plume pour SPIP 2
4 * Licence GPL
5 * Auteur Matthieu Marcillaud
6 */
7
8 if (!defined("_ECRIRE_INC_VERSION")) return;
9
10 #define('PORTE_PLUME_PUBLIC', true);
11
12 function porte_plume_autoriser($flux){return $flux;}
13
14 /**
15 * Autoriser l'action de previsu : la fermer aux non identifies
16 * si pas de porte plume dans le public
17 * @param string $faire
18 * @param string $type
19 * @param int $id
20 * @param array $qui
21 * @param array $opt
22 * @return bool
23 */
24 function autoriser_porte_plume_previsualiser_dist($faire, $type, $id, $qui, $opt){
25 return
26 (test_espace_prive() AND autoriser('ecrire'))
27 OR (!test_espace_prive() AND autoriser('afficher_public','porte_plume'));
28 }
29
30 // autoriser le porte plume dans le public ?
31 function autoriser_porte_plume_afficher_public_dist($faire, $type, $id, $qui, $opt) {
32 // compatibilite d'avant le formulaire de configuration
33 if (defined('PORTE_PLUME_PUBLIC')) {
34 return PORTE_PLUME_PUBLIC;
35 }
36 return ($GLOBALS['meta']['barre_outils_public'] !== 'non');
37
38 // n'autoriser qu'aux identifies :
39 # return $qui['id_auteur'] ? PORTE_PLUME_PUBLIC : false;
40 }
41
42 function porte_plume_insert_head_public($flux){
43 include_spip('inc/autoriser');
44 if (autoriser('afficher_public', 'porte_plume')) {
45 $flux = porte_plume_inserer_head($flux, $GLOBALS['spip_lang']);
46 }
47 return $flux;
48 }
49
50 function porte_plume_insert_head_prive($flux){
51 $js = find_in_path('javascript/porte_plume_forcer_hauteur.js');
52 $flux = porte_plume_inserer_head($flux, $GLOBALS['spip_lang'], $prive=true)
53 . "<script type='text/javascript' src='$js'></script>\n";
54
55 return $flux;
56 }
57
58 function porte_plume_inserer_head($flux, $lang, $prive = false){
59 $xregexp = find_in_path('javascript/xregexp-min.js');
60 $markitup = find_in_path('javascript/jquery.markitup_pour_spip.js');
61 $js_previsu = find_in_path('javascript/jquery.previsu_spip.js');
62 $js_start = parametre_url(generer_url_public('porte_plume_start.js'), 'lang', $lang);
63
64 $flux
65 .= porte_plume_insert_head_css('', $prive) // compat SPIP 2.0
66 . "<script type='text/javascript' src='$xregexp'></script>\n"
67 . "<script type='text/javascript' src='$markitup'></script>\n"
68 . "<script type='text/javascript' src='$js_previsu'></script>\n"
69 . "<script type='text/javascript' src='$js_start'></script>\n";
70
71 return $flux;
72 }
73
74 // pour charger tous les CSS avant les JS
75 // uniquement dans le public. (SPIP 2.1+)
76 // ici aussi appele depuis le prive avec le parametre $prive a true.
77 function porte_plume_insert_head_css($flux='', $prive = false){
78 static $done = false;
79 if ($done) return $flux;
80 $done = true;
81 include_spip('inc/autoriser');
82 // toujours autoriser pour le prive.
83 if ($prive or autoriser('afficher_public', 'porte_plume')) {
84 if ($prive) {
85 $cssprive = find_in_path('css/barre_outils_prive.css');
86 $flux .= "<link rel='stylesheet' type='text/css' media='all' href='$cssprive' />\n";
87 }
88 $css = find_in_path('css/barre_outils.css');
89 $css_icones = generer_url_public('barre_outils_icones.css');
90 $flux
91 .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n"
92 . "<link rel='stylesheet' type='text/css' media='all' href='$css_icones' />\n";
93 }
94 return $flux;
95 }
96
97
98 // valeur par defaut des configurations
99 function porte_plume_configurer_liste_metas($metas){
100 $metas['barre_outils_public'] = 'oui';
101 return $metas;
102 }
103
104
105 function porte_plume_affiche_milieu($flux){
106 if ($flux['args']['exec']=='config_fonctions'){
107 // dans la branche 2.1 on utilise l'ancienne interface du porte plume par homogeneite
108 // en version 2.0, le pipeline configurer_liste_metas n'existe pas...
109 if (version_compare($GLOBALS['spip_version_branche'], "2.2.0-dev","<")
110 and version_compare($GLOBALS['spip_version_branche'], "2.1.0-dev", ">")) {
111 $porte_plume = charger_fonction('porte_plume', 'configuration');
112 $flux['data'] .= $porte_plume();
113 } else {
114 $flux['data'] .= recuperer_fond('prive/configurer/porte_plume',array());
115 }
116 }
117
118 return $flux;
119 }
120
121 function porte_plume_porte_plume_barre_pre_charger($flux){return $flux;}
122 function porte_plume_porte_plume_barre_charger($flux){return $flux;}
123 function porte_plume_porte_plume_lien_classe_vers_icone($flux){return $flux;}
124
125 ?>