[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / compresseur / inc / compresseur_embarquer.php
index 1e13290..0d60692 100644 (file)
 
 /**
  * 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
@@ -24,49 +26,58 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
  * 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)}
  *
  */