/**
* Fonctions pour embarquer des images dans un CSS
- *
+ *
* @package SPIP\Compresseur\Embarquer
*/
-if (!defined("_ECRIRE_INC_VERSION")) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+ return;
+}
/**
* Embarque en base64 les images png|gif|jpg présentes dans un fichier CSS
* les faire embarquer directement dans le fichier
*
* @see filtre_embarque_fichier()
- *
+ *
* @param string $contenu
* Contenu d'un fichier CSS
* @param string $source
- * Source de ce fichier CSS
+ * URL Source de ce fichier CSS
+ * @param string $source_file
+ * filename Source de ce fichier CSS, si connu
* @return string
* Contenu du fichier CSS avec les images embarquées
-**/
-function compresseur_embarquer_images_css($contenu, $source){
+ **/
+function compresseur_embarquer_images_css($contenu, $source, $source_file = null) {
#$path = suivre_lien(url_absolue($source),'./');
- $base = ((substr($source,-1)=='/')?$source:(dirname($source).'/'));
+ $base = ($source_file ? $source_file : $source);
+ $base = ((substr($base, -1) == '/') ? $base : (dirname($base) . '/'));
+ $filtre_embarque_fichier = chercher_filtre('filtre_embarque_fichier');
+ if (!defined('_CSS_EMBARQUE_FICHIER_MAX_SIZE')) {
+ define('_CSS_EMBARQUE_FICHIER_MAX_SIZE', 4 * 1024);
+ }
return preg_replace_callback(
",url\s*\(\s*['\"]?([^'\"/][^:]*[.](png|gif|jpg))['\"]?\s*\),Uims",
- create_function('$x',
- 'return "url(\"".filtre_embarque_fichier($x[1],"'.$base.'")."\")";'
- ), $contenu);
+ create_function(
+ '$x',
+ 'return "url(\"".' . $filtre_embarque_fichier . '($x[1],"' . $base . '",_CSS_EMBARQUE_FICHIER_MAX_SIZE)."\")";'
+ ),
+ $contenu
+ );
}
/**
*
-Embarquer des images dans les css, tous nav :
-
-/*
-Content-Type: multipart/related; boundary="_ANY_STRING_WILL_DO_AS_A_SEPARATOR"
-
---_ANY_STRING_WILL_DO_AS_A_SEPARATOR
-Content-Location:chevron
-Content-Transfer-Encoding:base64
-
-iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFAQMAAAC3obSmAAAABlBMVEX///9mZmaO7mygAAAAEElEQVR42mNYwBDAoAHECwAKMgIJXa7xqgAAAABJRU5ErkJggg==
-
---_ANY_STRING_WILL_DO_AS_A_SEPARATOR
-...
-
---_ANY_STRING_WILL_DO_AS_A_SEPARATOR
-* /
-
-Puis
-
-background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFAQMAAAC3obSmAAAABlBMVEX///9mZmaO7mygAAAAEElEQVR42mNYwBDAoAHECwAKMgIJXa7xqgAAAABJRU5ErkJggg==");
-*background-image:url(mhtml:urlfeuille.css!chevron)}
-
+ * Embarquer des images dans les css, tous nav :
+ *
+ * /*
+ * Content-Type: multipart/related; boundary="_ANY_STRING_WILL_DO_AS_A_SEPARATOR"
+ *
+ * --_ANY_STRING_WILL_DO_AS_A_SEPARATOR
+ * Content-Location:chevron
+ * Content-Transfer-Encoding:base64
+ *
+ * iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFAQMAAAC3obSmAAAABlBMVEX///9mZmaO7mygAAAAEElEQVR42mNYwBDAoAHECwAKMgIJXa7xqgAAAABJRU5ErkJggg==
+ *
+ * --_ANY_STRING_WILL_DO_AS_A_SEPARATOR
+ * ...
+ *
+ * --_ANY_STRING_WILL_DO_AS_A_SEPARATOR
+ * /
+ *
+ * Puis
+ *
+ * background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFAQMAAAC3obSmAAAABlBMVEX///9mZmaO7mygAAAAEElEQVR42mNYwBDAoAHECwAKMgIJXa7xqgAAAABJRU5ErkJggg==");
+ *background-image:url(mhtml:urlfeuille.css!chevron)}
*
*/