source: spip-zone/_core_/plugins/porte_plume/porte_plume_pipelines.php @ 93092

Last change on this file since 93092 was 93092, checked in by gilles.vincent@…, 5 years ago

Mise en forme plus homegene et plus lisible, pour les declarations des fonctions
Regles :

  • un espace après chaque virgule
  • un espace avant et apres chaque '='
File size: 5.7 KB
Line 
1<?php
2/**
3 * Déclarations d'autorisations et utilisations de pipelines
4 *
5 * @plugin Porte Plume pour SPIP
6 * @license GPL
7 * @package SPIP\PortePlume\Pipelines
8**/
9
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12#define('PORTE_PLUME_PUBLIC', true);
13
14/**
15 * Fonction du pipeline autoriser. N'a rien à faire
16 * @pipeline autoriser
17 */
18function porte_plume_autoriser(){}
19
20/**
21 * Autoriser l'action de previsu
22 *
23 * La fermer aux non identifiés si pas de porte plume dans le public
24 *
25 * @param  string $faire Action demandée
26 * @param  string $type  Type d'objet sur lequel appliquer l'action
27 * @param  int    $id    Identifiant de l'objet
28 * @param  array  $qui   Description de l'auteur demandant l'autorisation
29 * @param  array  $opt   Options de cette autorisation
30 * @return bool          true s'il a le droit, false sinon
31 */
32function autoriser_porteplume_previsualiser_dist($faire, $type, $id, $qui, $opt){
33        return
34                (test_espace_prive() AND autoriser('ecrire'))
35          OR (!test_espace_prive() AND autoriser('afficher_public','porteplume'));
36}
37
38/**
39 * Autoriser le porte plume dans l'espace public ?
40 *
41 * @param  string $faire Action demandée
42 * @param  string $type  Type d'objet sur lequel appliquer l'action
43 * @param  int    $id    Identifiant de l'objet
44 * @param  array  $qui   Description de l'auteur demandant l'autorisation
45 * @param  array  $opt   Options de cette autorisation
46 * @return bool          true s'il a le droit, false sinon
47 */
48function autoriser_porteplume_afficher_public_dist($faire, $type, $id, $qui, $opt) {
49        // compatibilite d'avant le formulaire de configuration
50        if (defined('PORTE_PLUME_PUBLIC')) {
51                return PORTE_PLUME_PUBLIC;
52        }
53        return ($GLOBALS['meta']['barre_outils_public'] !== 'non');
54       
55        // n'autoriser qu'aux identifies :
56        # return $qui['id_auteur'] ? PORTE_PLUME_PUBLIC : false;
57}
58
59/**
60 * Ajout des scripts du porte-plume dans le head des pages publiques
61 *
62 * Uniquement si l'on est autorisé à l'afficher le porte plume dans
63 * l'espace public !
64 *
65 * @pipeline insert_head
66 * @param  string $flux Contenu du head
67 * @return string Contenu du head
68 */
69function porte_plume_insert_head_public($flux){
70        include_spip('inc/autoriser');
71        if (autoriser('afficher_public', 'porteplume')) {
72                $flux = porte_plume_inserer_head($flux, $GLOBALS['spip_lang']);
73        }
74        return $flux;
75}
76
77/**
78 * Ajout des scripts du porte-plume dans le head des pages privées
79 *
80 * @pipeline header_prive
81 * @param  string $flux Contenu du head
82 * @return string Contenu du head
83 */
84function porte_plume_insert_head_prive($flux){
85        $js = find_in_path('javascript/porte_plume_forcer_hauteur.js');
86        $flux = porte_plume_inserer_head($flux, $GLOBALS['spip_lang'], $prive=true)
87                . "<script type='text/javascript' src='$js'></script>\n";
88       
89        return $flux;
90}
91
92/**
93 * Ajout des scripts du porte-plume au texte (un head) transmis
94 *
95 * @param  string $flux  Contenu du head
96 * @param  string $lang  Langue en cours d'utilisation
97 * @param  bool   $prive Est-ce pour l'espace privé ?
98 * @return string Contenu du head complété
99 */
100function porte_plume_inserer_head($flux, $lang, $prive = false){
101        $markitup = find_in_path('javascript/jquery.markitup_pour_spip.js');
102        $js_previsu = find_in_path('javascript/jquery.previsu_spip.js');
103        $js_start = parametre_url(generer_url_public('porte_plume_start.js'), 'lang', $lang);
104        if (defined('_VAR_MODE') AND _VAR_MODE=="recalcul")
105                $js_start = parametre_url($js_start, 'var_mode', 'recalcul');
106
107        $flux .= 
108                   "<script type='text/javascript' src='$markitup'></script>\n"
109                .  "<script type='text/javascript' src='$js_previsu'></script>\n"
110                .  "<script type='text/javascript' src='$js_start'></script>\n";
111
112        return $flux;
113}
114
115/**
116 * Ajout des CSS du porte-plume au head privé
117 *
118 * @pipeline header_prive_css
119 * @param string $flux  Contenu du head
120 * @return string Contenu du head complété
121 */
122function porte_plume_insert_head_prive_css($flux){
123        return porte_plume_insert_head_css($flux, true);
124}
125
126/**
127 * Ajout des CSS du porte-plume au head public
128 *
129 * Appelé aussi depuis le privé avec $prive à true.
130 *
131 * @pipeline insert_head_css
132 * @param string $flux  Contenu du head
133 * @param  bool  $prive Est-ce pour l'espace privé ?
134 * @return string Contenu du head complété
135 */
136function porte_plume_insert_head_css($flux = '', $prive = false){
137        include_spip('inc/autoriser');
138        // toujours autoriser pour le prive.
139        if ($prive or autoriser('afficher_public', 'porteplume')) {
140                if ($prive) {
141                        $cssprive = find_in_path('css/barre_outils_prive.css');
142                        $flux .= "<link rel='stylesheet' type='text/css' media='all' href='$cssprive' />\n";
143                }
144                $css = direction_css(find_in_path('css/barre_outils.css'), lang_dir());
145                $css_icones = generer_url_public('barre_outils_icones.css');
146                if (defined('_VAR_MODE') AND _VAR_MODE=="recalcul")
147                        $css_icones = parametre_url($css_icones, 'var_mode', 'recalcul');
148                $flux
149                        .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n"
150                        .  "<link rel='stylesheet' type='text/css' media='all' href='$css_icones' />\n";
151        }
152        return $flux;
153}
154
155/**
156 * Valeur par défaut des configurations
157 *
158 * @pipeline configurer_liste_metas
159 * @param array $metas
160 *     Tableaux des metas et valeurs par défaut
161 * @return array
162 *     Tableaux des metas et valeurs par défaut
163 */
164function porte_plume_configurer_liste_metas($metas){
165        $metas['barre_outils_public'] = 'oui';
166        return $metas;
167}
168
169/**
170 * Ajoute le formulaire de configuration du porte-plume sur la page
171 * des configurations avancées.
172 *
173 * @pipeline affiche_milieu
174 * @param array $flux Données du pipeline
175 * @return array      Données du pipeline
176 */
177function porte_plume_affiche_milieu($flux){
178        if ($flux['args']['exec']=='configurer_avancees')
179                $flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_porte_plume'));
180
181        return $flux;
182}
Note: See TracBrowser for help on using the repository browser.