~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

Fotoo Mini-Manager 0.2.1

Quelques explications sur un nouveau script de galerie photo (et oui encore).

Fotoo Mini-Manager est un petit (27Ko) gestionnaire de galerie photo, utilisé par ma galerie personnelle: Bohwaz.KD2.org (j'en reparlerais plus tard). Il est léger, rapide, simple, et fait ce qu'on lui demande et uniquement ça (pas comme Gallery!). Son fonctionnement est ultra-simple: on uploade ses photos sur le serveur, et il les affiche par répertoire. Ensuite vous pouvez attribuer un titre, une description et une licence à chaque répertoire, ainsi qu'un titre, une description et des mots-clés différents à chaque photo (des outils sont dispos pour faire du mass-tagging). Ainsi on peut ensuite également explorer ses photos par mot-clé, ce qui est assez intéressant à mon sens :) A ça vient s'ajouter un accès restreint par adresse IP et/ou par mot de passe. C'est tout.

Techniquement ça utilise PHP5 et les fonctions SimpleXML pour faire le boulot, car toutes les données sont stockées en XML (bien que ça serait plus intéressant de les stocker en IPTC dans les fichiers JPEG mais que j'ai pas trouvé comment faire ça en PHP), c'est du xHTML 1.0 Strict et du CSS2 pour la présentation. Le tout en un seul fichier PHP + un fichier CSS. Ah et ça fait des Clean URLs si vous en avez envie :)

Le fonctionnement repose également sur un principe de répartition des tâches entre le client et le serveur. Faire générer des miniatures par un serveur est à mon sens une idiotie et une perte de temps, c'est chiant à coder, ça prends des ressources. Donc il faut générer les miniatures de chaque répertoire avant l'upload à l'aide d'un script bash (mais ça se fait en une ligne de terminal à l'aide de ImageMagick). Ainsi le serveur n'a pas à effectuer d'opération lourde directement sur les images, tout est fait à l'avance.

Bon ceci dit, ça marche, c'est cool, mais SimpleXML c'est quand même assez chiant à utiliser avec plein d'exceptions dans tous les sens qu'il faut corriger... Et puis PHP5 tout le monde l'a pas donc bon. Je vais tenter de faire en sorte que la prochaine version n'utilise plus Simple XML et marche avec PHP4 aussi. De même peut-être sûrement court-circuiter le XML, soit en passant par IPTC, soit par un format texte proprio un peu plus optimisé... Dans tous les cas sûrement générer un cache PHP des données utilisées, sinon c'est trop lourd de parser ça à chaque fois. Et pourquoi pas un cache HTML statique directement?

Bref en attendant que j'atteigne mes objectifs, le code source est dispo sur demande. La licence est pour l'instant Creative Commons By-Nc-Sa, donc non-libre au sens GPL. Et d'ailleurs tous mes développements vont probablement passer sous cette licence, mais j'en reparlerais plus tard aussi.

É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>

ze6tmd

Hello :-)

Ben moi j en veux bien du script pr mettre sur mon espace kd2 ;-) il m en fallait un justement... A propos s il faut que je verse une cotisation pour ma place sur ce merveilleux espace, fais le moi savoir, ce sera avec plaisir que je te ferai parvenir un ptit cheque ! Bon c est ou qu on dl le script de photos stp ? y a des notes pour l install ?? Merci pour tout ! :-D et a +

BohwaZ

Argh! Vade Retro Web 2.0!

Le code source est là: http://dev.kd2.org/fotoo-mm/mini-manager.php.txt et la CSS est là: http://dev.kd2.org/fotoo-mm/mini-manager.css

Le mini-manager.php.txt est à renommer en mini-manager.php5 ici sur kd2.org. Enfin voici le script bash dont tu aura besoin. Il faut le lancer dans chaque répertoire ou il y a des photos et que tu veux uploader.

#!/bin/bash

# Please edit these values
THUMB_SIZE="100x100"
THUMB_QUALITY=50
SMALL_SIZE="700x500"
SMALL_QUALITY=75

CURRENTDIR=`pwd`
FILES=`ls -1 *.jpg 2>&1 | head -n 1 | sed 's/.*\*\.jpg.*/None/'`

echo "Processing $CURRENTDIR..."
if [ "$FILES" = "None" ]
then
        echo "No photo found here."
        exit
fi

mkdir ".thumbs" 2>&1 > /dev/null
mkdir ".smalls" 2>&1 > /dev/null

for i in *.jpg
do
        echo -n " * $i ...              "
        echo -n "Thumbnail... "
        convert -size $THUMB_SIZE "$i" -resize $THUMB_SIZE -quality $THUMB_QUALITY +profile "*" ".thumbs/$i"
        echo -n "OK.    Small... "
        convert -size $SMALL_SIZE "$i" -resize $SMALL_SIZE -quality $SMALL_QUALITY +profile "*" ".smalls/$i"
        echo "OK."
done;

ze6tmd

"Il faut le lancer dans chaque répertoire ou il y a des photos et que tu veux uploader"

> ok ca veut dire quoi ca au juste ? j en fait quoi des lignes de code la ? je l ai copie sur un txt et ensuite ? il doit avoir quelle extension ds le repertoire ?

Excuse moi de faire mon boulet mais y a de bdd ? ni de fichier de config ?

Reprenons :

1 / Je cree un repertoire photos

2/ j envoie le mini-manager.php5 ds le repertoire et aussi mini-manager.css

et ensuite ? le repertoire correspondant au mois en cours va se creer automatiquement ? comment creer des archives ? y a il une interface d admin ?? un systeme d'upload ???

argh bon je vais essayer en espeperant que ca explose pas ;-)

merci ++

Pierre

BohwaZ

En fait c'est assez simple: si tu sais pas utiliser la ligne de commande Unix ce script n'est pas pour toi :)

Désolé mais c'est comme ça... C'est prévu pour être simple mais faut avoir un minimum de bases en ligne de commande, c'est pas destiné aux "newbies".

Par contre je peux répondre à tes autres questions. Le script bash doit être mis dans un fichier texte genre fotoo-generator.sh, puis chmodé en 777. Et ensuite lancé dans chaque répertoire de photos à uploader, mais c'est sur ton pc local ça, sous linux ou Mac OSX uniquement. Les données sont stockées dans des fichiers XML, donc pas de BDD. Pas de fichier de config. La rare config est dans le fichier php.

Relis mon billet tout expliqué normalement.

ze6tmd

bouhou snif ! c est vrai que j suis un foutu newbie et que ces trucs la j ai pas encore pris le temps d apprendre a m en servir. Je vois vaguement ce dont tu m expliques et un jour j essaierai sans doute vu qu il m arrive parfois souvent d'utiliser Linux installe sur toutes mes machines neanmoins.

bien inutile de te faire perdre plus de temps donc, je te remercie pour ces explications !

++

amities,

Pierre