~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

jBrout'le'web (aka Fotoo Gallery)

J'ai longtemps cherché le moyen le plus simple et le plus pratique de gérer mes photos et les afficher sur mon site. J'ai codé au moins 3 gestionnaires de galerie différents et aucun ne m'a jamais convenu parfaitement. Le premier était plutôt simple, d'où son nom Fotoo simple HTML gallery, il ne faisait qu'extraire la miniature EXIF dans un fichier à part et lire le commentaire dans le fichier descript.ion (restes de mon passé MS-DOS). C'est notamment ce qui a servi pour la publication de mes agendas. Ensuite j'ai tenté de faire un super gestionnaires de photos, Fotoo Manager, qui devait faire le café, mais que j'ai abandonné : trop long à développer, trop compliqué. Par la suite j'ai décidé de fusionner la simplicité du premier mais avec les idées du second (édition de tags et descriptions des images en ligne), c'était Fotoo Mini Manager. Cependant il posait plusieurs problèmes, le premier étant la complexité d'édition des données et le second le stockage des données dans des fichiers XML qu'aucun autre logiciel ne saurait utiliser.

Et enfin j'ai découvert jBrout. C'est un excellent petit logiciel pour gérer ses photos, car très proche des fichiers : les albums ne sont que les répertoires contenant les photos et les tags et commentaires sont stockés directement dans les fichiers (via IPTC et Exif). C'est simple, pratique et surtout les données ne sont pas stockées on ne sait où. Là les données sont dans les photos, rien à faire.

Cependant si jBrout gère remarquablement mes photos, cela ne règlait pas le problème de l'affichage des photos, leurs tags et leurs commentaires, sur mon site web. Je me suis donc attelé à la tâche pour reproduire plus ou moins la logique de jBrout en PHP, avec quelques menus avantages. Le résultat c'est Fotoo Gallery. Une galerie en PHP qui affiche les photos par répertoire, par tag et par date (comme les 3 onglets de jBrout), qui récupère les données depuis les informations IPTC/EXIF de l'image. Difficile de faire plus simple à l'utilisation : recopiez vos photos dans un sous répertoire où est Fotoo Gallery et voilà vos photos sont gérées. Pas besoin comme dans jBrout d'utiliser Ajouter/Rafraîchir, Fotoo Gallery détecte lui-même les nouveaux fichiers, ceux qui ont été supprimés et ceux qui ont été modifiés. Enfin, comme les données sont stockées dans les photos, vous pouvez très bien supprimer le répertoire de cache contenant la base de données de Fotoo Gallery, il recréera ses données tout seul.

Les fonctionnalités en détail :

  • Utilise PHP 5 et SQLite uniquement, rien à configurer
  • Détection automatiques des nouvelles photos et des changements dans les photos, mise à jour en live des données
  • Rapide : ne génère une miniature que lorsque la miniature EXIF n'existe pas
  • Utilise IMLib, Imagick ou GD (selon dispo) pour la génération de miniature (quand pas de miniature EXIF)
  • Vue par répertoire, par tags ou par date (année/mois/jour)
  • Récupération des commentaires des photos via les données EXIF (JPEG comment)
  • Récupération des tags des photos via IPTC
  • Tags en rapport avec un tag (= autres tags associées aux photos d'un tag donné)
  • Commentaire par album : fichier README à la racine du répertoire
  • Raccourcis de liens possibles dans commentaires albums/photos (taper wp:Belgium fera un lien vers la page wikipédia "Belgium", tag:Arbres fera un lien vers la liste des photos du tag "Arbres")
  • Possibilité de traduire l'interface en utilisant un fichier de configuration
  • Possibilité de changer entête/pied de page/feuille de style

Enfin c'est peut-être mieux de voir un exemple en fonctionnement. Pour cela il suffit d'aller voir ma galerie de photos.

Comment installer ?

Recopiez simplement ce fichier à la racine du répertoire contenant vos photos et renommez-le en index.php. C'est tout.

Utilisation avancée

  • Pour créer un commentaire d'album, créez un fichier texte nommé simplement "README" dans le répertoire de l'album et éditez-le.
  • Pour traduire l'interface en français, téléchargez user_config.php et placez le dans le même répertoire que la galerie.
  • Pour traduire dans une autre langue, suffit de faire pareil, mais éditez le fichier et traduisez les textes.
  • Pour utiliser votre propre CSS, créez un fichier user_style.css dans le même répertoire que la galerie.
  • Pour modifier l'entête et le pied de page, créez des fichiers user_header.php et user_footer.php dans le même répertoire que la galerie. Vous pouvez utiliser cet exemple de user_header.php pour vous inspirer.

Des questions ? Des bugs ? Des "c'est pourri" ? Lâchez vos coms ! ;)

Écrire un commentaire
(facultatif)
(facultatif)
(obligatoire)
 _                            _   
| |__   ___  _ __  _ __   ___| |_ 
| '_ \ / _ \| '_ \| '_ \ / _ \ __|
| |_) | (_) | | | | | | |  __/ |_ 
|_.__/ \___/|_| |_|_| |_|\___|\__|
                                  
(obligatoire)

Les adresses internet seront converties automatiquement.
Tags autorisés : <blockquote> <cite> <pre> <code> <var> <strong> <em> <del> <ins> <kbd> <samp> <abbr>

Bast

J'y vois une excellente galerie. Je pense l'utiliser voir même l'intégrer à Jelix.

Un seul truc me chiffonne : on affiche l'image en qualité max originale dans un cadre 600x480. Je préfèrerais afficher une autre image mise en cache de celle-ci et laisser la résolution originale en lien.

bohwaz

C'est prévu :)

Met define('GEN_SMALL', true); dans user_config.php ça génèrera une image "petite" (600x(x)) lors de la mise à jour en plus de la miniature.

C'est désactivé parce que ça ralentit quand même beaucoup et c'est pas super gentil pour ton serveur web. Je réfléchis à une méthode permettant de générer les "petites" sur ta machine, avant l'upload dans la galerie... Si t'as une idée :)

kimaidou

Waou, je viens aussi de découvrir jbrout que j'affectionne particulièrement. Enfin un sof puissant, simple, qui respecte les photos

Comme gallery, je connaissais Luxbum, qui avait un peu le meme principe (pas de bdd, seulement les photos classées dans des répertoires et l'appli fait le reste)

Le tien est parfait !

Merci

kimaidou

Allez, après quelques tests, voici mes idées d'amélioration :

* Lorsqu'on clique sur une photo et qu'on arrive en mode agrandi, il serait très sympa de pouvoir naviguer dans le répertoire de photos avec une flèche à gauche et une flèche à droite.

* Il faudrait un système de panier comme jbrout : si la photo nous plait, on met dans le panier. a la fin, on peut télécharger tout le panier au format zip. Le petit + : permettre d'ajouter automatiquement toutes les photos d'un même répertoire (ou d'un même tag, ou d'un meme mois, etc.) dans le panier, en un clic.

* mettre par défault ta css en téléchargement (sans le fond), c'est tellement plus joli :D

* avoir constamment un rappel à gauche de l'arborescence des répertoires photos (comme dans jbrout, le panneau de gauche 'Albums' ). Si tu fais un système de panier, l'y ajouter, et mettre une belle icône pour l'individualiser.

Merci encore, et bonne continuation (ce ne sont que des propositions, à toi d'en faire ce que tu veux bien sûr)

Kimaidou

kimaidou

Allez, autre idée !

Pour générer les caches 800*600 et les miniatures, pourquoi ne pas créer un plugin du côté de jbrout en python qui ferait un "exporter vers jbroutleweb, en partenariat avec le développeur de jbrout (très sympa) ?

Comme ça, c'est pas le serveur qui fait tout le boulot

micar

Alors, là bravo!

Je cherchais un logiciel simple pour gérer mes photos et qui enregistre les tags dans l'EXIF.

Je tombe sur JBrout et j'apprécie. Il correspond à mes attentes.

Bon, deuxième étape, je ferais bien des diaporamas en ligne à partir du classement de JBrout...

Je cherche et ne trouve que des usines à gaz. Sur le point d'aiguiser mon php pour me faire une appli maison, je tente une dernière recherche dans Google...

Et voilà ty pas que je tombe sur ton travail?

Et quel travail! exactement ce que je cherchais.

Ya plus qu'à bidouiller un peu le fichier user_config.php et user.style.css et le tour est joué.

J'ai passé une bonne après midi malgré le temps !

Bravo et encore bravo

cezabs

Bonjour,

je viens de découvrir ce super soft d'une simplicité extraordinaire.

toutefois, j'ai deux soucis :

j'ai juste copié le fichier index.php (ex gallery.php) dans le répertoire "photos" à la racine de mon site et j'obtiens ce message :

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/xx/xxxxxxx/xxxxx/photos/index.php on line 39.

Keskicepass ??

Peut-on avoir des albums photos (sous-repertoire) privés (avec login et mot de passe) ?

Merci de vos réponses et Bravo pour ce soft.

lipki

Je viens de "poser" ce petit fichier dans mon répertoire /home/kevin/Photos/

Un petit lanceur et hop un gestionnaire de photo local au poil (merci).

Mais j'ai du louper une étape, je ne vois pas comment ajouter /modifier les commentaires/tags ?