Bonjour,
Existe t-il une option permettant l'affichage des dimensions des hautes résolutions , des photos intégrées dans le répertoire pwg_high ?
Dans l'hypothèse qu'il n'y a pas d'équivalent, qu'elle serait la procédure pour le réaliser ?
Merci
Jérôme
Hors ligne
Pb avec les site distants. Je m'explique.
Les dimensions de la HD ne sont pas disponibles dans la base de données.
=> Il faudrait:
- Soit les ajouter = Complexe compte-tenu de l'ajout en FTP, ou à la sauce pLoader, ou par site distant.
- Soit les obtenir au moment de l'affichage...
- Soit les obtenir progressivement en asynchrone = complexe,... (Comment je découvre que l'image a été rechargée avec des dimensions nouvelles, etc...).
Pour les obtenir au moment de l'affichage:
- Si on demande à la page générée (par javascript) de lire la HD pour afficher ses dimensions, c'est pénalisant dans tous les cas car l'image va être transférée sur le site du visiteur (bande passante, etc.).
- Si on demande au php (ou au template) d'aller collecter la dimension de la HD, cela correspond à faire lire la HD par le serveur, si la HD est distante cela peut être interdit (free), ou très pénalisant.
(On peut le faire si l'image n'est pas distante, et si on n'a jamais encore collecté cette info).
= Complexe encore et Comment je découvre que l'image a été rechargée avec des dimensions nouvelles?
C'est malgré tout dans cette dernière direction qu'il faut se diriger (un plugin assez tordu à réaliser en raison de l'ajout de champ dans la base. Je n'aime pas du tout cette idée.).
Hors ligne
Cela me semble très raisonnable.
Néanmoins pLoader pourrait l'ajouter en base de données, ce serait d'ailleurs un élément fort comparé au transfert FTP + Synchro.
En complément l'admin intro pourrait en Ajax (et sur option s'il ne cherche pas de mise à jour par exemple) scanner une image avec HD n'ayant pas encore ses dimensions (si aucun scan n'a été lancé depuis 10 mn par exemple).
Pour moi, c'est 2 features à créer.
;-)
PS: Le fait que cela soit en option permettrait au webmaster, qui aurait temporairement ou non des contraintes de connexions, de ne pas activer systématiquement cet automatisme. Et le fait de collecter ces infos par l'admin, réduit l'impact pour les visiteurs d'autant plus que le webmaster a en général la connexion adhoc pour télécharger des HD.
Hors ligne
VDigital a écrit:
Pour moi, c'est 2 features à créer.
@VDigital : tu t'exprime mieux que moi en Anglais. Je te laisse le soin d'ouvrir les tickets correspondants :-)
Une précision que j'apporterai bien :
Si la gestion avec les sites distants est trop complexe, pourquoi ne pas "switcher" sur l'affichage de la vue normale ? Faute de mieux bien entendu...
La demande d'affichage des dimensions de la HD n'est pas nouveau et il serait temps (pour la 2.1 ?) de faire un petit quelque chose. Non ?
:-)
Hors ligne
pour pLoader
[Bugtracker] ticket 1628
pour l'admin ...
[Bugtracker] ticket 1629
Hors ligne
il y a plusieurs bugs à propos de ça dites donc ^^
[Bugtracker] ticket 1791
je n'ai pas compris le problème qu'essayait de faire comprendre VDigital :S
j'ai tout de même essayé ma cuisine dans la section 'picture information' de picture.php
if ($picture['current']['is_picture'] AND $picture['current']['has_high']) { if (!empty($picture['current']['high_dimensions'])) { $infos['INFO_DIMENSIONS_HD'] = $picture['current']['high_dimensions']; } else { $hi_size = @getimagesize($hi_url); if ($hi_size !== false) { pwg_query(' UPDATE ' . IMAGES_TABLE . ' SET high_dimensions = "' . $hi_size[0].'*'.$hi_size[1] .'" WHERE id = ' . $picture['current']['id'] . '; '); $infos['INFO_DIMENSIONS_HD'] = $hi_size[0].'*'.$hi_size[1]; } } }
ya juste à ajouter un champs de langue et créer le script de mise à jour de la bdd et le tour est joué pour Piwigo 2.3 ^^
On peut aussi envisager un plugin qui générerait toutes les données d'un coup, mais ce n'est pas dans mes cordes, il faut sans doute utiliser de l'ajax pour passer outre les timeout...
Hors ligne
La problématique soulevée par VDigital, à l'époque, est que les dimensions des photos HD ne sont pas stockées en base de données (table #_images).
Et il faut aussi se placer dans le contexte de dépôt de photos par FTP donc impliquant une synchronisation "à l'ancienne". Dans ce cas, les données de taille enregistrées en base de données sont celles de la version "web_size" des photos. J'ai d'ailleurs toujours trouvé çà bizarre et inapproprié.
Dans ton code, tu mets à jour un champ unique "high_dimensions". Cela ne suffira pas, à mon avis. Il faudrait stocker les valeurs de hauteur et de largeur des photos dans de nouveaux champs. A la manière des champs "filesize", "width" et "height" existant mais qui sont dédiés (comme je le dis plus haut) aux valeurs des "web_size".
On a déjà un champ "high_filesize" (où tout est à NULL chez moi) existant qui pourrait convenir pour stocker le poids des photos HD. Ne manque plus que "high_width" et "high_height" ;-)
Après, l'intérêt est aussi de mettre à jour les données sur une galerie existante soit par re-synchronisation manuelle des photos par le webmaster soit par un autre mécanisme plus automatisé et géré par Piwigo.
Hors ligne
Eric a écrit:
Après, l'intérêt est aussi de mettre à jour les données sur une galerie existante soit par re-synchronisation manuelle des photos par le webmaster soit par un autre mécanisme plus automatisé et géré par Piwigo.
Ca sera certainement plus compliqué d'implémenter un tel mécanisme alors qu'une synchronisation fera tout aussi bien l'affaire. Donc le mécanisme automatique ne me semble pas important.
Bon par contre, inscrire ces informations dans la BDD c'est certainement mieux que la lecture à la volée (évoqué sur le forum central).
Hors ligne
Eric a écrit:
Cela ne suffira pas, à mon avis. Il faudrait stocker les valeurs de hauteur et de largeur des photos dans de nouveaux champs.
tu penses à un plugin qui voudrait réutiliser indépendamment les valeurs ? (sans avoir à faire de explode)
et de toute façon c'est plus propre ^^
quand à la mise à jour je pense effectivement qu'une lecture à la volée n'est pas la solution, c'est pourquoi avec mon code ça ne le fait la première fois, ça a l'avantage de ne pas demander beaucoup de ressources en une fois
mais ceci n'est que la première partie, et la plus facile, il faut que j'implémente ça dans la fonction de synchronisation FTP et dans la fonction d'upload
quand pLoader, de quelle façon ça marche pour la taille ? pLoader prépare les données et dit à Piwigo "inscrit cette valeur pour cette image" (dans ce cas je ne peux pas le faire moi-même...) ; ou il envoie l'image et Piwigo "l'analyse" ?
Hors ligne
mistic100 a écrit:
quand pLoader, de quelle façon ça marche pour la taille ? pLoader prépare les données et dit à Piwigo "inscrit cette valeur pour cette image" (dans ce cas je ne peux pas le faire moi-même...) ; ou il envoie l'image et Piwigo "l'analyse" ?
pLoader envoie *les* images (dans le différentes tailles TN, Web size et HD si la photo originale est plus grande que les paramètres web size) et c'est l'API de Piwigo qui traite. Enfin, si j'ai bien tout compris ;-)
Hors ligne
bien, j'aurais peut être une chance de faire la modif sans apprendre le [language de pLoader]
par contre je bloque sur la synchronisation, je ne vois pas à quel moment la taille (octets) du fichier hd est récupérée en inscrite dans la bdd... c'est à ce moment là que je veux récupérer les dimensions.
pour l'upload pas de problème, il y a une belle variable $high_infos avec tout ce qu'il faut ^^
Hors ligne
mistic100 a écrit:
par contre je bloque sur la synchronisation, je ne vois pas à quel moment la taille (octets) du fichier hd est récupérée en inscrite dans la bdd... c'est à ce moment là que je veux récupérer les dimensions
Probablement parce que la taille du fichier HD n'est pas récupérée ? Le champ en bdd existe mais est-il alimenté ? Je n'ai pas trop le temps de me pencher sur le code en ce moment mais çà va revenir ;-)
Hors ligne