commit 1519dfd2be47e3c6a26af4e96bfaba55f8773d57
Author: jluc@no-log.org <>
Date: Tue Oct 1 11:56:04 2019 +0000
on passe creer_sprite_css en sous dossier v1.3 (reste stable) et on crée un trunk (en dev) pour corriger et améliorer
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..b4e41ed
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,3 @@
+* text=auto !eol
+/creer_sprites_fonctions.php -text
+/paquet.xml -text
diff --git a/creer_sprites_fonctions.php b/creer_sprites_fonctions.php
new file mode 100644
index 0000000..60bb5b8
--- /dev/null
+++ b/creer_sprites_fonctions.php
@@ -0,0 +1,134 @@
+
+ if (@file_exists($img)) $src = $img;
+ else {
+ $src = extraire_attribut($img, "src");
+ $src = preg_replace(",\?[0-9]*$,", "", $src);
+ // Si pas de fichier, ignorer
+ if (!@file_exists($src)) return;
+ }
+
+
+ $GLOBALS["sprites"]["$nom"]["fichiers"][] = $src;
+
+ $largeur = largeur($img);
+ $hauteur = hauteur($img);
+
+ if ($largeur > $GLOBALS["sprites"]["$nom"]["largeur"]) $GLOBALS["sprites"]["$nom"]["largeur"] = $largeur;
+ $hauteur_old = max(0, $GLOBALS["sprites"]["$nom"]["hauteur"]);
+ $GLOBALS["sprites"]["$nom"]["hauteur"] += $hauteur;
+
+ $alt = extraire_attribut($img, "alt");
+ $class = extraire_attribut($img, "class");
+ $fichier = sous_repertoire(_DIR_VAR, 'cache-sprites').$nom;
+ //$fichier .= "?m=spiprempdate[$fichier]";
+
+ $date_src = @filemtime($src);
+ if ($date_src > $GLOBALS["sprites"]["$nom"]["date"]) $GLOBALS["sprites"]["$nom"]["date"] = $date_src;
+
+ return "
";
+}
+
+function creer_sprites_terminaison_fichier_image($fichier) {
+ if (preg_match(",^(?>.*)(?<=\.(gif|jpg|png)),", $fichier, $regs)) {
+ $terminaison = $regs[1];
+ return $terminaison;
+ } else {
+ return false;
+ }
+
+}
+
+function creer_sprites($flux) {
+ $sprites = $GLOBALS["sprites"];
+ $page = $flux['data']['texte'];
+ if ($sprites) {
+ foreach($sprites as $key => $sprite) {
+ $fichier = sous_repertoire(_DIR_VAR, 'cache-sprites').$key;
+
+
+ $date_max = $sprite["date"];
+ $date_src = @filemtime($fichier);
+ $largeur = $sprite["largeur"];
+ $hauteur = $sprite["hauteur"];
+
+ $creer = false;
+ if ($date_src < $date_max) $creer = true;
+ if ($largeur != largeur($fichier) || $hauteur != hauteur ($fichier)) $creer = true;
+
+ if (in_array($_GET['var_mode'], array('recalcul', 'debug'))) $creer = true;
+
+ if ($creer) {
+
+ include_spip('inc/filtres_images');
+
+ $im = imagecreatetruecolor($largeur, $hauteur);
+ imagepalettetotruecolor($im);
+ @imagealphablending($im, false);
+ @imagesavealpha($im,true);
+ $color_t = imagecolorallocatealpha( $im, 0, 0, 0 , 127 );
+ imagefill ($im, 0, 0, $color_t);
+
+ $y_total = 0;
+ foreach($sprite["fichiers"] as $img) {
+
+ $f = "imagecreatefrom".str_replace("jpg","jpeg",creer_sprites_terminaison_fichier_image($img));
+ $im_ = $f($img);
+ @imagepalettetotruecolor($im_);
+
+ $x = imagesx($im_);
+ $y = imagesy($im_);
+
+
+ @ImageCopy($im, $im_, 0, $y_total, 0, 0, $x, $y);
+ $y_total += $y;
+ }
+
+ $nom_fichier = substr($fichier, 0, strlen($fichier) - 4);
+ _image_imagepng($im, "$nom_fichier.png");
+ $f = creer_sprites_terminaison_fichier_image($fichier);
+ if ($f != "png") {
+ $new = extraire_attribut( image_aplatir("$nom_fichier.png", $f, "ffffff"), "src");
+ @copy($new, $fichier);
+
+ }
+
+ imagedestroy($im);
+ imagedestroy($im_);
+
+ }
+
+ }
+ }
+
+ // Mettre les dates des fichiers en variable de chaque appel
+ $page = preg_replace_callback(",spiprempdate\[([^\]]*)\],", "creer_sprites_remplacer_date", $page);
+
+ $flux["data"]['texte'] = $page;
+ $GLOBALS["sprites"] = false;
+ return $flux;
+}
+
+
+function creer_sprites_remplacer_date($regs) {
+ $fichier = $regs[1];
+
+ if ($date_fichier["$fichier"] > 0) {
+ return $date_fichier["$fichier"];
+ }
+ else {
+ $date_fichier["$fichier"] = @filemtime($fichier);
+ return $date_fichier["$fichier"];
+ }
+}
+
+function creer_sprites_recuperer_fond ($flux) {
+ return creer_sprites($flux);
+
+}
diff --git a/paquet.xml b/paquet.xml
new file mode 100644
index 0000000..6c6507a
--- /dev/null
+++ b/paquet.xml
@@ -0,0 +1,17 @@
+
+
+ Créer sprites CSS
+
+ ARNO*
+ GPL
+
+
+
+s