Pages: 1
Bonjour,
Debian Buster, Piwigo 12.3.0, au sujet d'une chose observée depuis le premier piwigo 12.x
Le Piwigo que j'héberge a un fonctionnement qui m'échappe un peu, mais je mettrai plutôt en cause mon serveur : la vignette d'un album uploadé semble au premier abord choisie aléatoirement parmi les photos mises en ligne.
Je dis "au premier abord" et "aléatoirement", parce que je comprends pas comment on en arrive là.
Par principe, piwigo choisit la 1e image uploadée dans un album, comme la vignette de l'album.
OK.
Mais alors, pour une raison quelconque, la 1e image uploadée n'est pas la 1e image selon un tri alphabétique.
Je veux dire, comment illustrer... Un dossier avec "image 01.png" ... "image 06.png" ... "image 12.png", je clique pour uploader des photos, créer un album, sélectionner des photos, ça ouvre l'explorateur windows, je fais control-A pour tout sélectionner, oui vas-y uploader, et au final, ça pourrait être n'importe laquelle des 12 images qui aura été choisie pour être la vignette.
Allez savoir. Soit mon serveur fonctionne bizarrement et n'envoie pas le bon fichier en premier, soit les amis pour qui je l'héberge ont bricolé dans mon dos sans me le dire (hautement improbable mais qui sait), soit, je sais pas, un bug super rare et improbable avec piwigo (personne ne le mentionne dans les forums, tant mieux !), soit l'explorateur windows qui fait des siennes dans la communication, je ne sais vraiment pas.
Et peu importe en fait, ça n'affecte que moi, et ça n'est pas grave de toutes façons.
Au besoin, je sais qu'on peut, dans l'édition des images, les assigner comme vignette principale pour un album, donc le jour où c'est important, il y a cette option.
Cela devrait m'être indifférent, mais c'est comme une démangeaison qui ne veut pas partir, j'aimerais bien que ça tombe sur la 1e image, selon un tri alphabétique, ici donc "image 01.png".
S'il vous plaît, connaîtriez-vous un moyen de forcer ce paramètre, dans piwigo ?
Merci si vous avez une idée à ce sujet, et ne vous épuisez pas sinon, c'est vraiment mineur comme questionnement :)
Hors ligne
(Le sujet avait déjà été abordé l'an dernier, https://fr.piwigo.org/forum/viewtopic.php?id=29474 , puis j'avais oublié le truc; c'est récemment qu'on m'en a parlé de nouveau ce qui me l'a rappelé. Je crée un nouveau sujet pour ne pas tout mélanger)
Hors ligne
Je comprends pas trop le problème.
Pour la vignette représentante de l'album, ya le bouton "Représentante" dans la barre de menu en affichage photo.
Et pour l'ordre des photos, ya un onglet "Ordre des photos" dans la gestion de chaque album, avec soit l'ordre manuel soit un ordre automatique, avec plusieurs critères disponibles, qui peuvent être cumulatifs, genre : par date, puis par auteur puis alphabétique. Donc quand on crée un album, on peut de suite spécifier dans quel ordre les photos qui y seront téléversées devront être affichées.
En ligne
Je pense que l'idée est que dans la liste des albums, la vignette représentative de chaque album soient automatiquement la première image de chaque album, au sens de première dans l'ordre alphabétique.
Pour réaliser cela de manière automatique, je propose une requête SQL pour mettre à jour la base de donnée après une série d'importations. Cela nécessite de pouvoir accéder à PHPMyAdmin (par exemple), ou de développer un plugin adéquat.
Un première requête préliminaire pour voir l'association entre album, image représentative actuelle, et image représentative espérée
-- Aperçu des albums, de leur image représentative, et de l'image représentative espérée SELECT CAT.`id`, CAT.`representative_picture_id`, IMG.`id` AS first_img_id, MIN(IMG.`name`) FROM `pwg_categories` AS CAT LEFT JOIN `pwg_image_category` AS J ON CAT.`id` = J.`category_id` LEFT JOIN `pwg_images` AS IMG ON J.`image_id` = IMG.`id` GROUP BY CAT.`id`
Une seconde requête préliminaire pour ne voir que les albums qui n'ont pas l'image représentative espérée
-- Aperçu des albums dont l'image représentative n'est pas la première image par ordre alphabétique SELECT * FROM (SELECT CAT.`id`, CAT.`representative_picture_id`, IMG.`id` AS first_img_id, MIN(IMG.`name`) FROM `pwg_categories` AS CAT LEFT JOIN `pwg_image_category` AS J ON CAT.`id` = J.`category_id` LEFT JOIN `pwg_images` AS IMG ON J.`image_id` = IMG.`id` GROUP BY CAT.`id`) AS REPRESENTATIVES_PICTURES_LIST WHERE `representative_picture_id` != `first_img_id`
Si les requêtes précédentes sont conformes à ce qui est espéré, alors la requête de mise à jour peut-être lancée (attention, pas de retour arrière possible, donc prendre ses dispositions de sauvegarde par exemple)
-- Mise à jour de l'image représentative en choisisant la première par ordre alphabétique UPDATE `pwg_categories` AS CAT_NEW LEFT JOIN (SELECT CAT.`id`, CAT.`representative_picture_id`, IMG.`id` AS first_img_id, MIN(IMG.`name`) FROM `pwg_categories` AS CAT LEFT JOIN `pwg_image_category` AS J ON CAT.`id` = J.`category_id` LEFT JOIN `pwg_images` AS IMG ON J.`image_id` = IMG.`id` GROUP BY CAT.`id`) AS CAT_UPDATE ON CAT_NEW.`id` = CAT_UPDATE.`id` SET CAT_NEW.`representative_picture_id` = CAT_UPDATE.`first_img_id` ;
Quelques lectures utiles : https://mariadb.com/kb/en/min/ et https://ubiq.co/database-blog/get-first … oup-mysql/
Hors ligne
Pages: 1