Bonsoir,
Je veux afficher les 10 dernières images d'un album dans une page web.
Pour ce faire, j'utilise la requète sql suivante :
$sql = 'SELECT c.name,i.name,i.path,ic.category_id FROM `piwigo_image_category` ic inner join `piwigo_images` i on i.id = ic.image_id inner join `piwigo_categories` c on c.id = ic.category_id where c.name = "'.$chat.'" order by ic.image_id desc limit 0,10';
$chat contenant le nom de l'album.
Jusqu'à mon upload de ce soir, cette requète fonctionnait très bien. Mais depuis le dernier upload, les images n'apparaissent pas dans la page web.
Après avoir cherché, je me rend comtpe que l'image existante a l'url :
http:/xxx/photos/upload/2015/03/24/20150324222120-4aa642e2.jpg
et que le script génère l'url :
http://xxx/photos/_data/i/upload/2015/03/24/20150324222120-4aa642e2-cu_s9999x200.jpg
Via ftp, je trouve le fichier 20150324222120-4aa642e2.jpg
Jusqu'à présent, j'ajoute dans la construction de l'url les répertoires "_data/i/" mais il semble que les derniers fichiers n'aient pas ces répertoires dans leur url.
- Pourquoi n'ai-je pas "_data/i/" pour les derniers fichiers ?
- Y a t il une requête correcte qui permette d'avoir systématiquement les vignettes des photos, quel que soit l'album ?
Merci pour vos réponses.
Version de Piwigo: 2.5.3
Version de PHP: 5.4.37
Version de MySQL: 5.5.41
Hors ligne
Bonjour,
Sauf que dans ce cas, toutes les photos visibles sous le lien :
http://xxx/photos/_data/i/upload/2015/03/23/20150323211215-a050add3-cu_s9999x200.jpg
deviennent invisible avec le chemin
http://xxx/photos/upload/2015/03/23/20150323211215-a050add3-cu_s9999x200.jpg
Ce que je cherche, c'est la bonne façon de construire un chemin vers les vignettes
Donc, pour résumer : Actuellement, ma requête retourne (pour un même album) un chemin "constant" mais pour certaines photos, je dois ajouter "_data/i/" au chemin formé et pour d'autre non.
Quelle logique ou quelle requête dois-je utiliser pour avoir un chemin qui sera toujours valide ?
Merci pour vos réponses.
Hors ligne
je vais essayer de faire simple
fichier d'origine (c'est le i.path)
http://xxx/photos/upload/2015/03/23/20150323211215-a050add3.jpg
chemin vers i.php qui va générer la taille custom si besoin
http://xxx/photos/i.php?/upload/2015/03/23/20150323211215-a050add3-cu_s9999x200.jpg
chemin vers le cache, valide uniquement après le premier appel à i.php (donc ne l'utilisez pas)
http://xxx/photos/_data/i/upload/2015/03/23/20150323211215-a050add3-cu_s9999x200.jpg
le suffixe "cu_s9999x200" indique une taille custom de hauteur 200px et largeur non fixée
vous ne pouvez pas mettre n'importe quoi comme suffixe custom, il faut que ça ai été enregistré avec une fonction PHP dédiée, je suppose que "cu_s9999x200" vient du plugin GThumb+ ou GDThumb
les suffixes standards sont "th", "sq", "2s", "xs", "sm", "me", "la", "xl", "xx"
Hors ligne
Merci pour votre réponse, cela me permet de comprendre certaines choses.
Je note que le plus important, c'est le " si besoin" dans la génération des tailles custom
Dans votre réponse, je déduis que "_data" est le chemin vers le cache ? (je ne l'identifie pas parfaitement dans votre réponse)
Je note que le suffixe "cu_s9999x200" ne peut s'appliquer que si une miniature de cette taille a été générée
J'en déduis donc qu'il n'y a aucun moyen fiable d'obtenir une vignette car celle-ci n'est pas créée systématiquement.
Par conséquent, j'en conclu que la seule méthode acceptable c'est d'extraire l'url physique du fichier déposé sur le serveur et de l'afficher
- soit en contraignant la hauteur ( ou la largeur, en fonction de ses préférences)
- soit de manipuler l'image et de créer au vol (gdi ?) une image aux dimensions que l'on désire.
Si je me trompe, merci de me corriger.
Si je ne me trompe pas, j'ai une question complémentaire qui est la suivante :
- Est-il techniquement possible de créer un plug-in qui sera exécuté systématiquement (et automatiquement) après un upload de fichier et qui pourrait créer une vignette aux dimensions désirées ? (ce genre de plug-in existe peut-être déjà ? )
Encore merci pour le temps que vous me consacrez
Hors ligne
Dans votre réponse, je déduis que "_data" est le chemin vers le cache ?
oui
Je note que le suffixe "cu_s9999x200" ne peut s'appliquer que si une miniature de cette taille a été générée
Faux. j'ai dis "ai été enregistré"
il a déjà été enregistré sur votre galerie, donc vous pouvez l'utiliser, avec n'importe quelle image
J'en déduis donc qu'il n'y a aucun moyen fiable d'obtenir une vignette car celle-ci n'est pas créée systématiquement.
Faux. Et c'est l'url que j'ai donné dans ma première réponse
utilisez systématiquement http://xxx/photos/i.php?/upload/2015/03/23/20150323211215-a050add3-cu_s9999x200.jpg (construit à partir de l'url de l'image d'origine)
point, rien de plus
(ou alors http://xxx/photos/i.php?/upload/2015/03/23/20150323211215-a050add3-th.jpg pour la miniature standard)
---
ce que vous demandez pour votre "plugin" est le fonctionnement standard, pas besoin de chercher midi à quatorze heure
Hors ligne
De fait, ma mauvaise compréhension du point 2 m'a fait partir sur un mauvais résonnement.
Navré de vous avoir pris tant de temps, mais grâce à vous, j'ai enfin compris une erreur utilisée depuis plus d'un an mais qui ne s'est manifestée que dernièrement.
Encore merci.
Hors ligne