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