3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2013 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
14 * Fonctions et filtres du compresseur
16 * @package SPIP\Compresseur\Pipelines
18 if (!defined("_ECRIRE_INC_VERSION")) return;
21 * Compression des JS et CSS de l'espace privé
23 * @pipeline header_prive
24 * @see compacte_head()
27 * Partie de contenu du head HTML de l'espace privé
29 * Partie de contenu du head HTML de l'espace privé
31 function compresseur_header_prive($flux){
32 include_spip('compresseur_fonctions');
33 return compacte_head($flux);
38 * Compression des JS et CSS de l'espace public
40 * Injecter l'appel au compresseur sous la forme de filtre
41 * pour intervenir sur l'ensemble du head du squelette public
43 * @pipeline insert_head
44 * @see compacte_head()
47 * Partie de contenu du head HTML de l'espace public
49 * Partie de contenu du head HTML de l'espace public
51 function compresseur_insert_head($flux){
53 .'?php header("X-Spip-Filtre: '
60 * Afficher le formulaire de configuration sur la page de configurations avancées
62 * @pipeline affiche_milieu
64 * @param string $flux Données du pipeline
65 * @return string Données du pipeline
67 function compresseur_affiche_milieu($flux){
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'));
78 * Lister les metas du compresseur et leurs valeurs par défaut
80 * @pipeline configurer_liste_metas
82 * Couples nom de la méta => valeur par défaut
84 * Couples nom de la méta => valeur par défaut
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';
94 * Déclarer les filtres sur les squelettes mis en cache
96 * Ici minification CSS si la meta la demande
98 * @pipeline declarer_filtres_squelettes
99 * @param array $flux Données du pipeline
100 * @return array Données du pipeline
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)
108 include_spip("inc/compresseur_minifier");
109 $flux['data'][] = 'minifier_html';