Depuis plusieurs années je met des photos en ligne pour les amis et la famille et je m'embêtais avec un script qui commence à se faire si vieux que j'en ai oublié le nom... et le site était de moins en moins à jour, et on me le reprochait de plus en plus... :)

Lors d'une discussion sur un tout autre sujet avec un ami on en vient à parler de ça et il me dit, va voir LuxBum, c'est libre sous GPL, gratuit, écrit en PHP et super !

Ce fut vite chose faite, et vraiment ce script en PHP est super sympa ! Il propose une petite interface d'administration très conviviale dont on reconnaitra le skin de celle de dotclear ;)

Cette interface propose des choses somme toute assez classique :

  • gestion de plusieurs galeries avec pour chacune un titre et une vignette
  • gestion des photos dans chaque galerie, avec pour chaque photo un titre et une date
  • les photos peuvent être uploader directement depuis l'interface, 5 par 5 au besoin
  • gestion des commentaires (nécessite l'utilisation d'une base de donnée)
  • paramétrage de l'application
  • un outils sur les noms de fichier et un autre de diagnostique de l'album photo

Passons maintenant en revue l'ensemble des fonctions côté visiteur, déjà impressionnant pour une version 0.5.x :

  • Une page d'accueil affichant toutes les galeries avec pour chacune : une vignette, un titre, le nombre de photos et le poids de la galerie, un lien pour la consulter et un autre pour lancer un diaporama (et oui, voir juste après)
  • La possibilité de lancer pour chaque galerie sont diaporama. Il y a alors une nouvelle fenêtre sans barre d'outils qui s'ouvre, et les photos défilent toutes les 4secondes avec un joli fondu en transition. il est bien sûr possible d'annuler le fondu et de modifier le temps. Vous pouvez également faire pause et utiliser votre clavier pour vous balader dans le diaporama !
  • Lors de la consultation d'une galerie, la page qui occupe tout l'écran est divisée en deux avec à gauche les vignettes des 6 photos et en dessous les liens pour se balader dans les pages de la galerie. Sur la partie droite vous avez une photo en grand, il vous suffit donc de cliquer sur les vignettes à gauche pour afficher cette dernière en grand à droite. Vous avez également sous cette grande photos des boutons suivant et précédent. Tout ceci permet de naviguer simplement et intuitivement dans la galerie. En cliquant sur la grande photo vous accèderez alors à la vrai photo en taille originale.
  • En bas à droite, sous la grande photo vous avez la possibilité d'ajouter cette photo à votre sélection en cliquant sur le lien. Votre sélection peut se faire à travers toutes les galeries du site, et vous avez ensuite la possibilité de visualiser la sélection comme si c'était une galerie, voire même de la télécharger au format ZIP si cette fonction a été déverrouillée dans les paramètres.
  • Et pour finir ce tour des fonctionnalités vous avez en plus la possibilité de laisser un commentaire sur chaque photo...

Maintenant que la présentation est faite, je vous propose un peu de PHP. J'ai fait un petit patch à la 0.5.2 qui donna la 0.5.3 dès que Nicolas (l'auteur) le reçu ;)

Comme je l'ai déjà dit, LuxBum est sous licence GPL, ce qui donne et l'accès au sources, et la possibilité de les modifier et de les redistribuer ! Plutôt que de diffuser l'application modifiée de mon côté, j'ai constater l'auteur, en lui envoyant les modifs et comment et où les appliquer. J'ai également bien commenté le code afin de permettre à l'auteur de le comprendre rapidement afin de s'assurer que tout est ok pour intégrer le patch.

Les modifs que j'ai apporté ne sont pas extraordinaire. Il s'agit simplement de récupérer la date du cliché via les informations EXIF de la photo lors de l'upload dans l'administration. Nicolas LASALLE avait déjà dans le code de LuxBum créé les fonctions de récupération des informations EXIF, le reste n'a été qu'un jeu d'enfant... quelques copier-coller du code de LuxBum par-ci par-là afin de respecter si possible la méthode de l'auteur...

Bon, je pensais vous montrer le code mais ça ne vous aurais pas appris grand chose... il n'y a que 10 lignes, mais comme quoi 10 lignes de code peuvent ajouter une fonction qui trouve tout de suite son utilité ;)

Pour les curieux, vous pouvez voir le changeset de cette modif sur le WebSVN de LuxBum.

Au delà de la pub que je veux faire à LuxBum et de dire que je lui ai ajouté une mini fonctionnalité, je veux surtout montrer à tous que c'est souvent très simple de contribuer rapidement et simplement à un projet, que ce soit corriger un petit bug, ou même simplement signaler un bug, c'est ça le monde du libre ! ;)

Alors dès aujourd'hui arrêter d'être consommateur, et devenez acteur !

Je terminerais ce long ticket en donnant les points forts et points faibles de LuxBum selon mon point de vue :

[+] voir les vignettes et les agrandissements sur une même page
[+] informations EXIF des photos
[+] sélection de photos personnalisable
[+] administration simple, claire, agréable et efficace
[+] intégration automatique des photos ajoutées via FTP
[+] pas besoin de base de donnée (sauf si vous voulez permettre les commentaires)
[+] génération du cache des galeries

[-] impossible d'agencer la page d'accueil
[-] date non automatique lors de l'upload par ftp
[-] pas de bouton ma sélection sur la page d'accueil
[-] pas de possibilité de changer facilement le logo de page d'accueil pour personnaliser la page

N'attendez plus et allez télécharger le projet LuxBum