WordPress: Galeries Photo

16 septembre 2008

Après une activité très orientée Techno, je souhaite revenir un peu à la Photo, en vous exposant quelques oeuvres, sous forme de galeries photos. WordPress propose plusieurs solutions pour cela. Mais le choix n’est pas si facile, et dépend beaucoup de ce que l’on envisage de faire.

Questions et contraintes

La gestion des images en galeries peut se diviser en trois étapes:

  1. L’upload des images, leur stockage, et la fabrication des vignettes,
  2. L’affichage des galeries,
  3. L’affichage des images proprement dites.

Première étape: l’upload

Les questions a se poser sont nombreuses:

  • Upload: photo par photo ou en série,
  • Stockage: lieu du stockage, organisation en galerie, par date, en album …
  • Utilisation des pièces jointes (attachments) de WordPress, ou pas,
  • Vignettes: quelle taille, carrée ou rectangulaire (attention au respect de l’orientation),

Seconde étape: affichage de la galerie

Cette phase me semble moins problématique, les questions étant plutôt d’ordre esthétique: la galerie est-elle personnalisable? Dans quelle mesure? Quelle technologie utilise-t-on (Css, flash, Javascript)?

Ici, il faut plutôt faire attention aux objectifs du blog: si la majorité des articles contiennent des galeries, il ne s’agit plus d’un blog classique, mais plutôt d’un photoblog, et dans ce cas, il vaut mieux utiliser un outil spécialisé.

Troisième étape: affichage de l’image

Les questions portent sur l’esthétique et l’ergonomie. Nous avons principalement trois possibilités:

  1. Afficher l’image seule. Cette image apparaîtra dans une page blanche. Avec cette solution, les problématiques de taille de l’image sont gérés par le navigateur,
  2. Afficher l’image dans une page particulière du blog. Il faudra pour cela, gérer les templates image.php ou attachment.php,
  3. Utiliser une librairie Javascript permettant l’affichage en surimpression des images.

Les deux premières solutions gênent, à mon avis, la navigation, dans le sens ou elles imposent des aller-retours de la page « image » à la page « galerie », ce qui n’est pas très agréable.

L’avantage de la troisième solution (javascript), est que l’image apparaît en surimpression de la page courante, ce qui n’impose pas de changement de page. L’autre avantage est visuel: la plupart des scripts assombrissent l’écran avant d’afficher la photo, ce qui améliore sensiblement le confort visuel.

Attention à la taille des images, pour les solutions 2 et 3: il est important que la taille de l’image reste inférieure à la résolution de l’écran. Comme nous ne connaissons pas à l’avance cette résolution, il est préférable de rester sur des tailles du type 800×600.

Les solutions

Globalement, nous avons quatre méthodes possibles:

  • Utiliser les fonctions natives de WordPress,
  • Utiliser un plugin qui assure les trois étapes (upload, affichage de la galerie et des photos),
  • Utiliser plusieurs plugins pour couvrir les trois étapes.
  • Stocker les images dans un autre outil (Flickr par exemple), et ne traiter que l’affichage au niveau de WordPress.

Jusqu’à la version 2.5, WordPress ne proposait rien de réellement exploitable. La version 2.5 apporte le Media Manager et le shortcode gallery, qui améliorent sensiblement les choses, mais la solution proposée manque de souplesse:

  • La création des vignettes (deux tailles seulement), ne tient pas forcement compte de l’orientation de l’image initiale,
  • Le choix du/des répertoires de stockage est limité

Néanmoins, pour un utilisation occasionnelle, les fonctionnalités des versions 2.5 et 2.6.x sont suffisantes: L’étape 1 est assurée par le Media Manager, l’étape 2 par le shortcode [ gallery], et l’étape 3 peut être assurée par une template image.php ou attachment.php.

Si l’on opte pour une solution basée sur des plugins, il faut rester vigilant sur deux points:

  • L’indépendance vis-à-vis des plugins: modifient-ils la base, sont-ils intrusifs, pourra-t-on changer de plugin sans remettre en cause l’intégralité des galeries?
  • L’impact des plugins sur les performances globales du blog (taille et complexité des scripts).

Le premier point me semble particulièrement important: si les plugins utilisés ne s’appuient pas sur des éléments standards de WordPress, il deviendra impossible d’en changer. Hors la qualité des plugins évoluent dans le temps: nous ne savons si un plugin excellent aujourd’hui, ne deviendra pas médiocre demain, ou s’il sera toujours supporté et maintenu. De ce point de vue, il faut donc garder la possibilité de changer de plugin à tout moment. Nous pouvons tenir le raisonnement inverse: si l’on envisage de gérer beaucoup de galeries, avec de nombreuses photos, la gestion des images par Wordpress, va surcharger la table des articles (wp_posts), et ralentir le site.

Le second point concerne plus la phase d’affichage des images, si l’on opte pour une solution Javascript. La référence dans ce domaine est Lightbox, qui a donné naissance à de très nombreux dérivés. Ces scripts se basent sur des librairies Javascript, telles que Prototypes, Scriptaculous, JQuery ou Mootools. Le problème est que certaines de ces librairies sont très lourdes: une solution basée sur Prototypes, par exemple, augmentera le poids de vos pages de plus de 100 Ko !

La question du stockage des photos est importante: comme pour la blogroll, nous avons le choix entre tout garder dans WordPress, ou utiliser un autre outil tier, le blog n’assurant que l’affichage. La réponse dépend de deux paramètres:

  • La capacité de stockage de l’hébergeur du blog,
  • Des objectifs de publication: si l’objectif est de partager un gros portfolio, il vaudrait peut-être mieux utiliser un outil comme Flickr, et un plugin associé. Si l’objectif est de montrer quelques photos, une solution interne suffira.

Quelques plugins

Compte-tenu du nombre et de la complexité des plugins existants dans ce domaine, se lancer dans un comparatif serait illusoire. je vous livre cependant quelques références de plugins que j’ai eu l’occasion de tester:

Le codex de WordPress consacre un article aux photoblogs et galeries photo, avec de nombreuses références.

Conclusion

Gérer des photos sur un blog nécessite un minimum de réflexion préalable. Il faut globalement répondre à trois questions:

  • Stocke-t-on les photos en interne, ou utilise-t-on un outil tiers?
  • Souhaite-t-on s’appuyer sur les mécanismes internes à WordPress ou utiliser un plugin?
  • Pour l’affichage des images, utilise-t-on un script, les templates attachments?

Répondre à ces questions suppose de savoir précisément ce que l’on veut faire, le point clé étant la quantité de galeries et de photos envisagées.

Pour ma part, même si cela reste un peu lourd, je préfère rester compatible avec WordPress pour le moment. Si mon volume de photos augmente, je changerai de stratégie.

Commentaires & rétroliens

Commentaires

4 commentaires

  1. excellent ton article. et merci beaucoup de mentionner photoq (d’ailleurs ton lien pointe vers une vieille version, la plus recente se trouve à l’adresse http://www.whoismanu.com/blog/2008/09/photoq-wordpress-photoblog-plugin-15-brings-tons-of-new-features-to-your-photoblog/).

    je suis complètement d’accord avec ton point sur les éléments standards de WordPress (sans faire trop de pub, c’est un des points principaux que j’essaye de respecter dans le développement de photoq). Je suis content que quelqu’un met pour une fois le doigt sur ce point, c’est une chose qui est malheureusement souvent negligée ce qui rends les installations WordPress dépendantes des plugins en question. Comment peut-on tester si un plugin respecte les éléments standards de WordPress? Activer le plugin sur un blog de test, publier quelques articles puis désactiver le plugin. si le blog a la même tête avec plugin activé et désactivé c’est bon.

  2. Merci pour les compliments.
    Ta methode de test est interessante.
    Je la completerai eventuellement avec la verification des tables creees.

  3. hmmm, verification des tables crees c probablement pas si simple. photoq par exemple cre des tables supplementaires qui sont uniquement utilisees pour gerer les photos qui se trouvent dans la file d’attente. par contre une fois que la photo est publie elle se trouve plus que dans les tables standards wordpress.
    bref, je pense que ca ne suffit pas forcement de juste regarder si un plugin cre des tables mais il faudra regarder si les tables crees interferent avec les tables de wordpress une fois le plugin est desactive.

  4. Effectivement.
    En fait, le problème général de Wordpress serait peut-etre la maintenance de sa base de données.
    Au bout de quelques années de fonctionnement, la base contient des tables inutilisées depuis la désinstallation du plugin associés, la table options devient enorme, parce que tres peu de plugins y font reellement le menage avant de partir, la table posts va contenir des versions obsolètes d’articles (versionning) …
    Il serait interessant pour la stabilite de la plateforme, que WordPress fournisse un API capable de « memoriser » ce qui est cree lors de l’installation d’un plugin, pour pouvoir l’effacer lors de sa désinstallation.
    Peut-etre une idee a fouiller (si ce n’est pas déjà fait).

Rétroliens

Pas de rétrolien.

Laissez un commentaire