@filemtime($source))
AND ($GLOBALS['var_mode'] != 'recalcul'))
return $f;
if (!lire_fichier($source, $contenu))
return $source;
// traiter le contenu
$contenu = $compacte($contenu);
// ecrire le fichier destination, en cas d'echec renvoyer la source
if (ecrire_fichier($f, $contenu, true))
return $f;
else
return $source;
}
// Sinon simple compactage de contenu
return $compacte($source);
}
// Cette fonction verifie les reglages du site et traite le compactage
// des css et/ou js d'un
// un fichier .gz est cree pour chaque, qui peut etre utilise par apache
// et lui eviter de recompresser a chaque hit, avec les directives suivantes :
//
//mod_gzip_on Yes
//mod_gzip_can_negotiate Yes
//mod_gzip_static_suffix .gz
//AddEncoding gzip .gz
//mod_gzip_item_include file \.(js|css)$
//
// http://doc.spip.org/@compacte_head
function compacte_head($flux){
include_spip('inc/compresseur');
if (!defined('_INTERDIRE_COMPACTE_HEAD')){
// dans l'espace prive on compacte toujours, c'est concu pour
if ($GLOBALS['meta']['auto_compress_css'] == 'oui' OR (test_espace_prive() AND !defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')))
$flux = compacte_head_css($flux);
if ($GLOBALS['meta']['auto_compress_js'] == 'oui' OR (test_espace_prive() AND !defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')))
$flux = compacte_head_js($flux);
}
return $flux;
}
/**
* Embarquer sous forme URI Scheme
* data:xxx/yyy;base64,....
* un fichier
*
* Experimental
*
* @staticvar array $mime
* @param string $src
* chemin du fichier
* @param string $base
* le chemin de base a partir duquel chercher $src
* @param int $maxsize
* @return string
*/
function filtre_embarque_fichier ($src, $base="", $maxsize = 4096) {
static $mime = array();
$extension = substr(strrchr($src,'.'),1);
$filename = $base . $src;
#var_dump("$base:$src:$filename");
if (!file_exists($filename)
OR filesize($filename)>$maxsize
OR !lire_fichier($filename, $contenu))
return $src;
if (!isset($mime[$extension]))
$mime[$extension] = sql_getfetsel('mime_type','spip_types_documents','extension='.sql_quote($extension));
$base64 = base64_encode($contenu);
$encoded = 'data:'.$mime[$extension].';base64,'.$base64;
#var_dump($encoded);
return $encoded;
}
/**
* Embarquer le 'src' d'une balise html en URI Scheme
*
* Experimental
*
* @param string $img
* @param int $maxsize
* @return string
*/
function filtre_embarque_src ($img, $maxsize = 4096){
$src = extraire_attribut($img,'src');
if ($src2=filtre_embarque_fichier($src) AND $src2!= $src) {
$img = inserer_attribut($img, 'src', $src2);
}
return $img;
}
?>