Re: cache vignettes : images différentes entre espace public/privé

Matthieu Marcillaud <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
Le 02/07/2017 à 12:48, RealET a écrit :
> Matthieu Marcillaud a écrit le 02/07/2017 à 12:35 :

>>> Est-ce un bug ?
>>
>> Je sais pas si c'est un bug, mais je reproduis :)
> Sans avoir lu le code pour vérifier, il me semble que ça pourrait être 
> parce que
> le hash est calculé sur le chemin entier, et que les chemins diffères de 
> "../"

Oui, c'est bien ce que j’imaginais aussi.
J’ai même un patch là éventuellement.

Si on est dans l’espace privé et qu’on trouve _DIR_RACINE sur le chemin, 
on l’enlève (du coup on retombe sur le chemin comme si on était dans le 
public). À tester peut être. Mais effectivement c'est con de doubler 
l’espace disque pour des traitements identiques !


Index: ecrire/inc/filtres_images_lib_mini.php
===================================================================
--- ecrire/inc/filtres_images_lib_mini.php	(revision 23630)
+++ ecrire/inc/filtres_images_lib_mini.php	(working copy)
@@ -230,6 +230,11 @@
  		return false;
  	}

+	// partager les images calculées pour des traitements identiques entre 
les images de l’espace public et privé
+	$identifiant = $fichier;
+	if (test_espace_prive() and strncmp($fichier, _DIR_RACINE, 
strlen(_DIR_RACINE)) == 0) {
+		$identifiant = substr($identifiant, strlen(_DIR_RACINE));
+	}

  	// cas general :
  	// on a un dossier cache commun et un nom de fichier qui varie avec 
l'effet
@@ -248,9 +253,9 @@
  			// 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 @@
  				$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);




_______________________________________________
liste: http://listes.rezo.net/mailman/listinfo/spip-dev
doc: http://www.spip.net/
dev: http://trac.rezo.net/trac/spip/
irc://irc.freenode.net/spip
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.