[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / compresseur / compresseur_pipeline.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 /**
14 * Fonctions et filtres du compresseur
15 *
16 * @package SPIP\Compresseur\Pipelines
17 */
18 if (!defined("_ECRIRE_INC_VERSION")) return;
19
20 /**
21 * Compression des JS et CSS de l'espace privé
22 *
23 * @pipeline header_prive
24 * @see compacte_head()
25 *
26 * @param string $flux
27 * Partie de contenu du head HTML de l'espace privé
28 * @return string
29 * Partie de contenu du head HTML de l'espace privé
30 */
31 function compresseur_header_prive($flux){
32 include_spip('compresseur_fonctions');
33 return compacte_head($flux);
34 }
35
36
37 /**
38 * Compression des JS et CSS de l'espace public
39 *
40 * Injecter l'appel au compresseur sous la forme de filtre
41 * pour intervenir sur l'ensemble du head du squelette public
42 *
43 * @pipeline insert_head
44 * @see compacte_head()
45 *
46 * @param string $flux
47 * Partie de contenu du head HTML de l'espace public
48 * @return string
49 * Partie de contenu du head HTML de l'espace public
50 */
51 function compresseur_insert_head($flux){
52 $flux .= '<'
53 .'?php header("X-Spip-Filtre: '
54 .'compacte_head'
55 .'"); ?'.'>';
56 return $flux;
57 }
58
59 /**
60 * Afficher le formulaire de configuration sur la page de configurations avancées
61 *
62 * @pipeline affiche_milieu
63 *
64 * @param string $flux Données du pipeline
65 * @return string Données du pipeline
66 */
67 function compresseur_affiche_milieu($flux){
68
69 if ($flux['args']['exec']=='configurer_avancees'){
70 // Compression http et compactages CSS ou JS
71 $flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_compresseur'));
72 }
73
74 return $flux;
75 }
76
77 /**
78 * Lister les metas du compresseur et leurs valeurs par défaut
79 *
80 * @pipeline configurer_liste_metas
81 * @param array $metas
82 * Couples nom de la méta => valeur par défaut
83 * @return array
84 * Couples nom de la méta => valeur par défaut
85 */
86 function compresseur_configurer_liste_metas($metas){
87 $metas['auto_compress_js']='non';
88 $metas['auto_compress_closure']='non';
89 $metas['auto_compress_css']='non';
90 return $metas;
91 }
92
93 /**
94 * Déclarer les filtres sur les squelettes mis en cache
95 *
96 * Ici minification CSS si la meta la demande
97 *
98 * @pipeline declarer_filtres_squelettes
99 * @param array $flux Données du pipeline
100 * @return array Données du pipeline
101 */
102 function compresseur_declarer_filtres_squelettes($flux){
103 if (!test_espace_prive()
104 AND !defined('_INTERDIRE_COMPRESSION_HTML')
105 AND $GLOBALS['meta']['auto_compress_http']=='oui'
106 AND (!isset($flux['args']['entetes']['Content-Type']) OR strncmp($flux['args']['entetes']['Content-Type'],'text/html',9)==0)
107 ){
108 include_spip("inc/compresseur_minifier");
109 $flux['data'][] = 'minifier_html';
110 }
111 return $flux;
112 }
113
114 ?>