edit : je cherche des testeurs http://fr.piwigo.org/forum/viewtopic.ph … 42#p170242
_______
C'est bon je suis chaud, je veux faire un truc bien tordu !
Pour ceux à qui ça ne dis rien un Smart Album (ou album dynamique en bon français) est un album auquel on applique des contraintes (tags, date, nombre d'éléments) et tous les éléments correspondants à ces critères font alors partie de l'album.
J'ai découvert le concept avec PicsEngine 3 (que j'utilise comme portfolio sur mon site), après les premières minutes de déroute on se rend compte que c'est vraiment extrêmement puissant !
Comme cette fonctionnalité est régulièrement demandée je vais tenter d'en faire un plugin... mais plus j'y pense plus je perçois de difficultés de parcours :p
Au début je pensais faire simple : des champs pour ajouter des critères sur la page de gestion des albums virtuels qui serviraient à construire une requête SQL dont les résultats seraient ajoutés à la variable $page['items'], le système se charge du reste (enfin je crois....)
Seulement voila :
- si je ne me trompe pas, au début du processus l'album serait virtuellement vide pour Piwigo => pas d'affichage
- comment le cache utilisateurs réagirait ? déjà qu'en temps normal je ne sais pas exactement comment il fonctionne....
C'est pourquoi je me disais qu'il serait plus simple (à défaut de plus efficace) d'avoir une mise à jour manuelle ou semi-automatique des associations images<->albums. Je m'explique :
- les critères définis au départ servent bien à faire une requête SQL, mais les résultats sont ajoutés à la table IMAGE_CATEGORY
- ainsi les images ne serait pas réellement automatiquement liées à l'album mais on peu facilement ajouter un bouton de synchro bien placé et/ou un chron-job pour régénérer les associations
En somme au lieu d'avoir un autre type d'album on aurait un système qui ferait le boulot de l'admin plus ou moins automatiquement.
Et si vous avez les idées plus claires que moi, je suis tout ouïe !
====
projet de critères :
# tags :
- tous les tags...
- un des tags...
- aucun des tags...
- chacun des tags
# date :
- ajouté le...
- ajouté avant le...
- ajouté après le...
# limiter à x images
# critère basé sur les exifs ? (impossible si les infos ne sont pas dans la bdd)
Dernière modification par mistic100 (2011-05-21 18:22:27)
Hors ligne
C'est ce dont je me sers aussi avec Lightroom (ca porte le même nom) pour créer mes albums :-)
Du coup je n'ai plus besoin pour ma galerie mais pour les autres ça servira toujours.
Bon courage car en effet, le cache utilisateur semble être un truc bien "tordu" à prendre en compte.
Hors ligne
ho tient mais quelle idée ^^
pour le cache demander son diagnostic à plg p@t ou celui qui y a le plus participé
Sinon perso dans le core ce serait encore mieux car en plugin cela risque d'être encore plus dur et plus lourd à charger
allez ne perd pas la main, t chaud là !
Dernière modification par flop25 (2011-05-10 11:18:17)
Hors ligne
Sur iPhoto (mac), ca existe aussi (album intelligent).
Je pense que c'et pas trop compliqué à faire... moi, je partirai de ce qui se fait en section spéciale (plus vues, plus commentées, etc...). Jette un oeil à [extension by P@t] Most Commented ou [extension by P@t] Has High. Pas besoin de se soucier du cache utilisateur.
Voila pour le principe de base... la seule différence que je vois, c'est que tu ne veux pas une section spéciale, mais bien un album. Dans [extension by Piwigo Team] Extended Description, j'ai fait une balise [redirect] qui permet de rediriger une catégorie vers un lien spécifique. Il suffit de t'en inspirer pour rediriger ton "smart album" vers la section spéciale qui va bien...
Hors ligne
P@t a écrit:
Dans [extension by Piwigo Team] Extended Description, j'ai fait une balise [redirect] qui permet de rediriger une catégorie vers un lien spécifique. Il suffit de t'en inspirer pour rediriger ton "smart album" vers la section spéciale qui va bien...
Pierrick dira que c'est du "bricolage" car ce n'est pas très "user friendly".
Hors ligne
Gotcha a écrit:
P@t a écrit:
Dans [extension by Piwigo Team] Extended Description, j'ai fait une balise [redirect] qui permet de rediriger une catégorie vers un lien spécifique. Il suffit de t'en inspirer pour rediriger ton "smart album" vers la section spéciale qui va bien...
Pierrick dira que c'est du "bricolage" car ce n'est pas très "user friendly".
J'ai pas dit qu'il fallait faire pareil... je voulais juste mettre mistic sur la piste du code, pas de la balise redirect!
Hors ligne
j'attaque la création des requêtes SQL, les plus dures étant celle avec les tags
pour rappel il y a les choix suivants :
- tous les tags
- un des tags
- aucun des tags
- seulement les tags
pour le second et le troisième choix je vois comment faire :
SELECT i.id FROM piwigo_images AS i INNER JOIN piwigo_image_tag AS t ON i.id = t.image_id WHERE tag_id IN (8, 12)
ou NOT IN pour 'aucun de tags'
mais les autres je sèche un peu... est-ce qu'on peut le faire uniquement en SQL ou il faut que je les sélectionne en PHP, auquel cas le processus sera beaucoup plus lourd, surtout sur les grosses galeries.
Hors ligne
en fait
SELECT i.id FROM piwigo_images AS i INNER JOIN piwigo_image_tag AS t ON i.id = t.image_id WHERE tag_id NOT IN (8, 12)
ne fonctionne pas pour avoir les images qui n'ont aucun de tags dans la liste
bon j'ai un filtre sur quatre qui fonctionne, c'est déjà ça ^^
mais pour les reste je sens que ça va être une vraie usine à gaz
Hors ligne
j'ai eu une illumination... regarde comment c'est fait dans PicsEngine (originale comme idée ^^)
et je suis mal barré
voici un exemple de requête générée pour "Seulement les tags 5 et 6"
SELECT * FROM ( ( SELECT NULL AS lastcomment_date, photos . * FROM `pe_photos` AS photos LEFT JOIN `pe_photos_tags` AS photos_tags1 ON photos_tags1.photo_id = photos.id LEFT JOIN `pe_photos_tags` AS photos_tags2 ON photos_tags2.photo_id = photos.id WHERE NOT EXISTS ( SELECT * FROM `pe_photos_tags` AS photos_tags0 WHERE photos_tags0.photo_id = photos.id && photos_tags0.tag_id NOT IN ( 5, 6 ) ) && photos_tags1.tag_id = '5' && photos_tags2.tag_id = '6' GROUP BY photos.id ORDER BY photos.uploaded DESC ) ) AS photos ORDER BY photos.uploaded DESC
oO
he ben je peux vous dire que le plugin n'est pas près de sortir
Hors ligne
Rvelices travail sur la fonction de recherche. Peux-être devrais-tu te rapprocher de lui pour savoir où il en est et voir ensemble s'il ne serait pas préférable que tu attendes qu'il termine son travail pour l'utiliser :-)
Hors ligne
j'ai réussi !!!
finalement une fois qu'un comprend la logique du programmeur, c'est facile ^^
je vous fait pas le détail, en plus Michael (créateur de PE) utilise de la POO, moi pas, alors c'est un peu plus moche
Hors ligne
bon, tout va bien pour l'instant... sauf FCBKComplete
pour permettre à l'admin d'ajouter autant qu'il veut de filtres, j'ajoute des lignes à la liste avec jQuery, à chaque fois il faut réinitialiser les "event handler", ça fonctionne très bien pour DatePicker mais pour FCBKComplete ça foire pas mal
voici mon code http://pastie.org/1896793
vous remarquerez que j'ajoute une classe "fcbk_initialized" pour éviter d'appliquer plusieurs fois le plugin au champs, sans ça, ça plantait complètement, mais là ça continue à pas être joyeux, voir capture
pour cette capture il y avait un champ avec le tag "blue", puis j'en ai ajouté un autre.... on voit qu'il l'a quand même à moitié appliqué au premier, et les "tooltip" ne disparaissent plus
Hors ligne
Je n'ai pas du tout eu le temps de regarder pour les requêtes, mais je suis sur qu'on va trouver plus simple ;-)
J'essaierai de regarder ce weekend... Sinon, notifie plg, il va trouver les requêtes en deux temps trois mouvements...
Hors ligne