1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/spip_ynh.git synced 2024-09-03 20:25:59 +02:00
spip_ynh/sources/plugins-dist/compresseur/compresseur_pipeline.php
2015-04-28 17:10:23 +02:00

114 lines
3.3 KiB
PHP

<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2014 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Fonctions et filtres du compresseur
*
* @package SPIP\Compresseur\Pipelines
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Compression des JS et CSS de l'espace privé
*
* @pipeline header_prive
* @see compacte_head()
*
* @param string $flux
* Partie de contenu du head HTML de l'espace privé
* @return string
* Partie de contenu du head HTML de l'espace privé
*/
function compresseur_header_prive($flux){
include_spip('compresseur_fonctions');
return compacte_head($flux);
}
/**
* Compression des JS et CSS de l'espace public
*
* Injecter l'appel au compresseur sous la forme de filtre
* pour intervenir sur l'ensemble du head du squelette public
*
* @pipeline insert_head
* @see compacte_head()
*
* @param string $flux
* Partie de contenu du head HTML de l'espace public
* @return string
* Partie de contenu du head HTML de l'espace public
*/
function compresseur_insert_head($flux){
$flux .= '<'
.'?php header("X-Spip-Filtre: '
.'compacte_head'
.'"); ?'.'>';
return $flux;
}
/**
* Afficher le formulaire de configuration sur la page de configurations avancées
*
* @pipeline affiche_milieu
*
* @param string $flux Données du pipeline
* @return string Données du pipeline
*/
function compresseur_affiche_milieu($flux){
if ($flux['args']['exec']=='configurer_avancees'){
// Compression http et compactages CSS ou JS
$flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_compresseur'));
}
return $flux;
}
/**
* Lister les metas du compresseur et leurs valeurs par défaut
*
* @pipeline configurer_liste_metas
* @param array $metas
* Couples nom de la méta => valeur par défaut
* @return array
* Couples nom de la méta => valeur par défaut
*/
function compresseur_configurer_liste_metas($metas){
$metas['auto_compress_js']='non';
$metas['auto_compress_closure']='non';
$metas['auto_compress_css']='non';
return $metas;
}
/**
* Déclarer les filtres sur les squelettes mis en cache
*
* Ici minification CSS si la meta la demande
*
* @pipeline declarer_filtres_squelettes
* @param array $flux Données du pipeline
* @return array Données du pipeline
*/
function compresseur_declarer_filtres_squelettes($flux){
if (!test_espace_prive()
AND !defined('_INTERDIRE_COMPRESSION_HTML')
AND $GLOBALS['meta']['auto_compress_http']=='oui'
AND (!isset($flux['args']['entetes']['Content-Type']) OR strncmp($flux['args']['entetes']['Content-Type'],'text/html',9)==0)
){
include_spip("inc/compresseur_minifier");
$flux['data'][] = 'minifier_html';
}
return $flux;
}
?>