Annonce

  •  » Utilisation
  •  » [Résolu] Chemin non trouvé via mysql

#1 2015-03-24 23:41:05

yvesbe
Membre
2013-06-05
45

[Résolu] Chemin non trouvé via mysql

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

#2 2015-03-24 23:46:43

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3556

Re: [Résolu] Chemin non trouvé via mysql

Oui

http://xxx/photos/i.php?/upload/2015/03/24/20150324222120-4aa642e2-cu_s9999x200.jpg

Hors ligne

#3 2015-03-25 19:27:01

yvesbe
Membre
2013-06-05
45

Re: [Résolu] Chemin non trouvé via mysql

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

#4 2015-03-25 19:44:17

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3556

Re: [Résolu] Chemin non trouvé via mysql

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

#5 2015-03-25 22:32:35

yvesbe
Membre
2013-06-05
45

Re: [Résolu] Chemin non trouvé via mysql

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

#6 2015-03-25 22:38:43

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3556

Re: [Résolu] Chemin non trouvé via mysql

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

#7 2015-03-25 22:47:42

yvesbe
Membre
2013-06-05
45

Re: [Résolu] Chemin non trouvé via mysql

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

  •  » Utilisation
  •  » [Résolu] Chemin non trouvé via mysql

Pied de page des forums

Propulsé par FluxBB

github twitter facebook newsletter Faire un don Piwigo.org © 2002-2020 · Contact