Plugin gallery pour dotclear2 : questions ouvertes
Bon ... repassons aux choses sérieuses. Les prochaines évolutions en cours de développement pour le plugin gallery et qui devraient voir le jour avec la 0.2 :
- Liens "image suivante" / "image précédente" pour chaque image
- API rest coté public du plugin afin de pouvoir s'amuser par la suite
- API rest coté administation, afin de rendre les maintenance de galerie plus propres pour les grosses galeries
- Possibilité de modifier les articles-images
- Non-nécessité de patcher le core pour que le plugin marche
- Peut-être plus si le temps me le permet
La mauvaise nouvelle, c'est qu'il faudra au minimum la SVN 1348 pour que ça fonctionne (autrement dit, une version plus récente que l'actuelle release 2.0beta6)
La question "ouverte", maintenant : L'ajout du lien "image suivante"/"image précédente" est loin d'être si simple que cela. En effet, pour pouvoir afficher ce lien, il faut pouvoir récupérer la galerie à laquelle appartient l'image. Or :
- Rien n'empêche à une image d'appartenir à plusieurs galeries
- Le nom de la galerie n'apparaît pas clairement dans l'url de l'image
Actuellement, une galerie a pour URL "urldublog/image/YYY/MM/DD/nom-de-la-galerie"; une image a pour URL "urldublog/image/chemin-de-l-image-depuis-public/nom-du-media"
(pourquoi ce choix pour le chemin de l'image, et pourquoi pas le urldublog/vrai-titre-de-l-image ? Actuellement, pour etre sûr de l'unicité de l'URL...)
Plusieurs solutions sont possibles :
- Récupérer la première galerie à laquelle appartient l'image (une bête requête SQL), et la considérer comme galerie par défaut.
- Avantage : rapide à mettre en oeuvre
- Inconvénient : si 2 galeries pointent vers la même image, cela ne fonctionne plus, et on ne peut plus naviguer dans la galerie
- Forger une URL comprenant le nom de la galerie et le nom de l'image (comme suggéré par monoceros01, dans un commentaire sur un billet précédent).
- Avantage : on retrouve facilement la galerie sans requête supplémentaire, plus de problème de conflit d'URL pour une image donnée.
- Inconvénients : plusieurs URL pour une même image (et donc des stats perturbées?), comment séparer l'url en 2 ? La nomenclature actuelle ne permet pas de le faire facilement
- Ajouter un paramètre à l'image, du genre
urldublog/image/chemin-de-l-image-depuis-public/nom-du-media?fromGallery=id-gal(solution qui me déplait le moins, en fait)- Avantage : unicité de l'URL de l'image, on retrouve facilement la galerie depuis l'image
- Inconvénient : URL moins propre
Et là, si vous avez bien suivi, vous me direz : "mais quel intérêt de créer 2 galeries qui pointent vers les mêmes images ?" Ma réponse : aucun. en revanche, le jour où il sera possible de faire des galeries transverses (du type, "je veux les images ayant un tag "toto"), on retrouve bien tout l'intérêt de la chose 
Mais comme je ne serai pas le seul utilisateur du plugin, j'en fais appel à votre opinion sur le sujet. Et peut-être y a-t-il une solution miracle à laquelle je n'ai pas pensé ...
Quant à la question "A quand la v0.2 ?", la réponse est aussi simple que pour dotclear2 : quand il sera prêt 
Plugin gallery 0.1beta2 pour dotclear2
Fini les gros développements avec une release à la fin, vive le "release early, release often".
La version 0.1beta du plugin gallery pour dotclear2 vient de sortir. Comme son nom l'indique, c'est une toute première version, et il manque plein de choses, et forcément, il va y avoir plein de bugs ...
J'en profite pour prendre les pincettes habituelles : Cette version n'est pas stabilisée, et est de ce fait réservée à un public averti!
La mise en place des fichiers en svn devrait arriver sous peu ...
Installation
- Cette version n'a été testée qu'avec la beta 6 de dotclear.
- Installer le plugin via l'archive ou le package
- Pour cette version (et croyez bien que j'en ai vraiment honte), il vous faudra aussi modifier un fichier du core :
Dans le fichier inc/core/class.dc.media.php. A la ligne 172 de ce fichier, remplacer :
private function fileRecord(&$rs)
Par :
public function fileRecord(&$rs)
Utilisation
Ce plugin fonctionne conjointement avec le gestionnaire de media. Comprenez par-là que toutes les images doivent avoir été indexées par le gestionnaire de media afin de les retrouver dans une galerie.
- Ajoutez vos images via le gestionnaire de media dans le répertoire voulu
- Créez une nouvelle galerie via l'admin (bouton "galeries" à droite"), puis "Nouvelle galerie".
- Saisissez une description de la galerie, ainsi que le répertoire de media associé
- Sauvez votre galerie
- allez sur l'onglet "Maintenance"
- Les images seront générées automatiquement. Une image est un billet particulier associé à un media. Du coup elles sont commentables, et présentent les mêmes caractéristiques que les billets normaux
- Ajoutez le widget "Galeries" à votre barre latérale
Ce que le plugin ne fait pas (encore)
Plein de choses :
- Il n'est pas encore possible d'éditer la description des images
- Il n'est pas encore possible de supprimer billets-images
- Il reste des bugs de navigation (image précédente/suivante, galerie précédente/suivante)
- Pas de compteurs sur les images (ce sera un autre plugin, je pense)
- Pas de gestion des tags...
- Pas d'ajax coté partie publique
- ...
Cette release est surtout là pour dire que le plugin avance à son rythme, et pour figer une version, pourquoi pas pour y voir des contributions extérieures 
EDIT : la 0.1beta2 est sortie. Elle devrait corriger entre autres :
- les préfixes de tables ne sont plus en dur dans le code (mea culpa)
- le filtrage des media se fait uniquement sur les images (le reste viendra peut-être après)
Changements ...
'Fallait bien que ça arrive un jour.
Et plutôt que de rester avec 2 blogs en parallèle, et vu que l'autre ne bouge pas des masses, j'ai préféré laisser tomber d'emblée l'ancien blog pour ce tout nouveau, tout en travaux...
Ce qui change ?
- Toutes les anciennes URL ne marchent plus (sauf les liens pour le téléchargement)
- J'ai enfin un vrai hébergement à moi
- Je suis enfin passé à dotclear 2
- Ce blog est une expérience grandeur nature pour le nouveau plugin gallery pour dotclear 2.
- Ce blog sera sûrement amené à changer de fond en comble, selon mon humeur...
Oui, vous avez bien lu, le plugin gallery n'est pas mort. Et ce en grande partie à cause (ou grâce à, c'est selon les goûts) d'un arrêt de travail de 10 jours suite à une belle entorse à la cheville qui me colle une jambe dans le plâtre pour 6 semaines.
Non, ce n'est pas la peine de m'implorer, il sortira quand il sera prêt (Olivier, tu n'as pas déposé de brevet sur la phrase ?
). Une version bêtaalpha sera très prochainement sur le svn, mais ne vous attendez pas à des merveilles. C'est une réécriture complète du plugin, donc il y a forcément des choses qui seront différentes, voire absentes au début...
Euh ... ouch
MySQL n'a qu'à bien se tenir ... :
SELECT P.post_id, P.blog_id, P.user_id, P.cat_id, P.post_dt, P.post_tz, P.post_creadt, P.post_upddt, P.post_format, P.post_password, P.post_url, P.post_lang, P.post_title, P.post_excerpt, P.post_excerpt_xhtml, P.post_content, P.post_content_xhtml, P.post_notes, P.post_meta, P.post_status, P.post_selected, P.post_open_comment, P.post_open_tb, P.nb_comment, P.nb_trackback, U.user_name, U.user_firstname, U.user_displayname, U.user_email, U.user_url, C.cat_title, C.cat_url , M.media_file, M.media_id, M.media_path, M.media_title, M.media_meta, M.media_dt, M.media_creadt, M.media_upddt, M.media_private FROM dc_post G INNER JOIN dc_meta GM on GM.post_id = G.post_id and GM.meta_type="galitem" INNER JOIN dc_post P on GM.meta_id = P.post_id INNER JOIN dc_user U ON U.user_id = P.user_id LEFT JOIN dc_category C ON P.cat_id = C.cat_id INNER JOIN dc_post_media PM ON P.post_id = PM.post_id INNER JOIN dc_media M on M.media_id = PM.media_id WHERE P.blog_id = 'default' AND P.post_type = 'galitem' AND G.post_type="gal" AND G.post_id='5' ORDER BY P.post_dt DESC
Gallery2 pour dotclear2 : premières réflexions
Et hop, un premier jet pour débroussailler ce qui sera probablement mon premier plugin pour dotclear2...