Bonjour à tous,
Sur un site avec environ 60 000 photos, j’ai été amené à utiliser le plugin hash_documents pour résoudre des problèmes d’accès au dossier IMG. Une bonne découverte ce plugin !
Par contre, je n’ai pas vu de solutions pour traiter le cas du dossier local/cache-vignettes, car j’ai du coup autant de vignettes pour une taille donnée…
Pire : mon dossier local/cache-gd2 contient lui, plus de 215 000 fichiers !!!
J’aimerais réaliser quelques évolutions de ce côté et cherche donc quelques explications générales sur le fonctionnement de ces caches images.
-
Y a t-il redondance entre cache-gd2 et cache-vignettes ?
-
Dans quel cas une image est placée dans l’un et dans l’autre (ou les deux ?)
-
A quoi servent les .src ? Quand sont ils générés ?
J’imagine un algo de hashage comme fait sur hash_document avec le principe suivant :
Chercher en 1er lieu la vignette dans le dossier hashé
- Si elle n’y est pas :
– Est-elle à son emplacement “historique” ? oui => la déplacer dans le dossier hashé
– Est-elle à son emplacement “historique” ? non => cas de sa génération dans le dossier hashé.
Ça permettrait un déploiement en douceur, et une migration petit à petit dans le temps…
(Voir aussi peut être l’histoire d’un htacces pour gérer les anciennes url référencées (Est-ce pertinent pour des vignettes ?)
Du coup, j’ai cherché un peu à quel endroit se passait la lecture/écriture de vignettes.
-
Est-ce bien dans inc/filtres_images_lib_mini.php ?
-
fonction _image_valeurs_trans(…) pour la lecture ?
-
fonction reconstruire_image_intermediaire(…) pour l’écriture ?
-
Y a t-il des choses particulières à savoir ?
C’est pour SPIP 2.1 mais je ne crois pas avoir vu de grands changements à ce niveau sous SPIP 3.
De mon côté, je cherche surtout à mettre en place qqch assez rapidement pour mon besoin, car en voyant le code, il me semble voir un très grand nombre de scénarios prévus pour tous les usages de SPIP et ses filtres.
Je ne connais pas les aspirations des développeurs du core sur ce sujet. (Généricité entre IMG, logo, local, cache, …).
Mais si j’arrive à résoudre ce problème, c’est avec plaisir que je vous partagerai cet essai.
A moins que vous ne me disiez que vous avez déjà une solution toute faite dans un carton… ce ne serait pas une première ! 
Merci pour votre lecture.
PS : vu aussi sur le Forum : http://forum.spip.net/fr_250589.html