Valider e5e1a887 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Éviter de créer 2 fois une même miniature d’une même image, sous 2 fichiers...

Éviter de créer 2 fois une même miniature d’une même image, sous 2 fichiers différents lorsqu’on utilise un filtre d’image dans l’espace privé ou public.
Ainsi `[(#LOGO_ARTICLE|image_reduire{200})]` créait 2 images dans local/ pour peu que ce code soit appelé dans l’espace public d’un coté et dans le privé ailleurs.
Pour ce faire, pour calculer le nom du fichier de l’image créée dans local/ on se base sur le chemin du fichier depuis la racine du site (IMG/art1.png et non parfois donc ../IMG/art1.png).

Corrolaire : du coup les images calculées actuellement (avant ce commit)  pour l’espace privé vont être recalculées (leur hash change du coup) si elles n’ont pas d’équivalent déjà calculé pour l’espace public.


Problème signalé par Julien Lenfray. Merci.
parent 6cf790a5
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+8 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -230,6 +230,11 @@ function _image_valeurs_trans($img, $effet, $forcer_format = false, $fonction_cr
		return false;
	}

	// partager les images calculées pour des traitements identiques dans l’espace public ou privé
	$identifiant = $fichier;
	if (strpos($f = realpath($fichier), _ROOT_RACINE) === 0) {
		$identifiant = substr($f, strlen(_ROOT_RACINE));
	}

	// cas general :
	// on a un dossier cache commun et un nom de fichier qui varie avec l'effet
@@ -248,9 +253,9 @@ function _image_valeurs_trans($img, $effet, $forcer_format = false, $fonction_cr
			// on garde la terminaison initiale car image simplement copiee
			// et on postfixe son nom avec un md5 du path
			$terminaison_dest = $terminaison;
			$fichier_dest .= '-' . substr(md5("$fichier"), 0, 5);
			$fichier_dest .= '-' . substr(md5("$identifiant"), 0, 5);
		} else {
			$fichier_dest .= '-' . substr(md5("$fichier-$effet"), 0, 5);
			$fichier_dest .= '-' . substr(md5("$identifiant-$effet"), 0, 5);
		}
		$cache = sous_repertoire(_DIR_VAR, $cache);
		$cache = sous_repertoire($cache, $effet);
@@ -260,7 +265,7 @@ function _image_valeurs_trans($img, $effet, $forcer_format = false, $fonction_cr
				$terminaison_dest = $fmt;
			}*/
	} else {
		$fichier_dest = md5("$fichier-$effet");
		$fichier_dest = md5("$identifiant-$effet");
		$cache = sous_repertoire(_DIR_VAR, $cache);
		$cache = sous_repertoire($cache, substr($fichier_dest, 0, 2));
		$fichier_dest = substr($fichier_dest, 2);