TheM
Le site de Mumu


english version

La Galerie de Mumu

Annecy et son lac

Pays de montagnes

Flâneries parisiennes

Passages



Contacts

La vie du site

Liens



Techniques Web

Techniques Photo

GENERER VOS PAGES HTML



Les limites du Javascript

Lorsque le nombre de photographies devient important, le principe de la visite dynamique permet de simplifier les opérations de création et de maintenance d'une galerie. Cette technique fait appel à du javascript pour construire au fur et à mesure les pages visitées par l'internaute.

Mais tous les explorateurs ne supportent pas le javascript. De plus, les différentes variables à transmettre d'une frame à l'autre peuvent rendre difficile la création de liens vers une page de galerie précise ou une photo déterminée. C'est pourquoi il est parfois préférable de conserver le principe d'une page HTML par photographie. Se pose alors à nouveau le problème de la génération de tous ces fichiers.

Un logiciel pour générer

Il existe des logiciels du commerce (certains sont présentés sur le site "Publication HTML" indiqué dans les liens) qui génèrent de manière automatique des galeries photographiques HTML. Pourquoi ne pas créer soi-même un programme de ce type? Voici, de manière simplifiée, les différentes étapes de la génération d'une galerie
  • Création du modèle de la page d'accueil de la galerie
  • Création du modèle de la page d'affichage d'une photo
  • Saisie des différents fichiers des photos à présenter
  • Génération des fichiers HTML de la galerie

Le modèle de la page d'accueil

Le modèle proposé pour la page d'accueil, galerie.html, est celui-ci :
<html>
<head>
 <title>[libelle]</title>
</head>

<body>
Ma galerie Photo<br>
[galerie]
</body>

</html>
        
[libelle] et [galerie] sont des balises qui seront remplacées lors de la génération des fichiers par les valeurs suivantes :

[libelle]
titre donné aux pages de la galerie
[galerie]
tableau contenant les imagettes/liens vers les photos grands format

Le modèle de la page d'affichage

De même, le modèle proposée pour la page d'affichage, image.html, est celui-ci :
<html>
<head>
 <title>[libelle]</title>
</head>

<body>
<img src="images/[image]_gf.jpg"><br>
[commentaire]<br>
[precedent] [galerie] [suivant]
</body>

</html>
        
avec les balises suivantes :

[libelle]
titre donné aux pages de la galerie
[image]
nom du fichier de la photographie
[commentaire]
description de la photographie
[precedent]
lien vers l'image précédente si nécessaire
[galerie]
lien vers la page d'accueil de la galerie
[suivant]
lien vers l'image suivante si nécessaire

Le fichier de données des photos

La liste des photographies à afficher est passée dans un fichier de données. De ce point de vue, il est assez semblable aux tableaux de données de la galerie dynamique. Pour chaque photo, leurs paramètres propres sont indiqués après la balise [locale]. Ils sont ainsi différenciés des paramètres communs à toutes les photos qui eux sont indiqués après la balise [globale]. Ces paramètres globaux sont, par exemple, le titre des pages de la galerie, valeur passée dans la variable libelle. C'est également dans ce fichier que sont indiqués les différents paramètres de construction propres à la galerie (par exemple le nombre de colonnes du tableau des imagettes de la page d'accueil). Ces variables sont passées après la balise [construct]. Le fichier liste.txt ressemble donc à ceci:
[construct]
nbCol = "2";
fichier = "Mum";
[globale]
libelle = "la galerie de Mumu";
[locale]
image =  "avion";
commentaire = "Décollage face à la chaine du Mont Blanc";
[locale]
image =  "ruisseau";
commentaire = "Au bout du lac d'Annecy, le ruisseau eau morte";
        
Toutes les balises utilisées dans les fichiers modèles de la page d'accueil et des pages d'affichage sont bien présentes dans cette liste avec, pour chacune d'elles, leur valeur respective.

Pour le nom des photographies, seul est indiqué le préfixe. Par exemple, au lieu de avion_gf.jpg ou avion_pf.jpg (pour les photographies destinées à être présentées respectivement sur une page d'affichage et sur la page d'accueil), la variable image prend la valeur avion dans le fichier de données. Pour générer la page d'accueil avec les imagettes, le logiciel rajoutera automatiquement le suffixe _pf.jpg au nom. Pour le fichier d'affichage, il remplacera simplement la balise [image] par sa valeur puisque le suffixe est indiqué directement dans le modèle :
<img src="images/[image]_gf.jpg"><br>
        
Remarquez que les fichiers images se trouvent dans un sous-répertoire images. Lors de la génération de la page d'accueil, le programme ajoutera automatique ce sous-répertoire avant le nom des imagettes.

Après la balise [construct] se trouve également une variable fichier qui a ici la valeur Mum. Elle indique le préfixe à utiliser pour les noms de fichiers. Les fichiers générés auront pour suffixe Gal.html, si c'est la page de présentation, ou Imgxx.html, si c'est la page d'affichage d'une photo (xx sera remplacé par le numéro de la photo).La génération va donc produire les fichiers suivants :

MumGal.html page d'accueil de la galerie
MumImg01.html page d'affichage de la photographie avion_gf.jpg
MumImg02.html page d'affichage de la photographie ruisseau_gf.jpg

Le programme

Reste à créer le programme! Celui-ci va devoir :
  • Lire le fichier liste.txt et se créer une liste des différents paramètres de construction, globaux et locaux à chaque photo.
  • Recopier le fichier galerie.html, le modèle de la page d'accueil de la galerie, y remplacer toutes les balises globales par leur valeur et écrire le tableau des imagettes/liens à la place de la balise [galerie].
  • Pour chaque photo, recopier le fichier image.html, le modèle de la page d'affichage, y remplacer toutes les balises globales et locales par leur valeur, et renseigner correctement les balises [precedent], [galerie] et [suivant].
  • Détruire la liste élaborée à partir du fichier de données.
C'est ce que réalise le programme dont le code est présenté ci-dessous. Il a été écrit en langage C. Vous pouvez le recopier et le compiler.

Après avoir exécuter ce programme dans le répertoire où se trouve les fichiers liste.txt, galerie.html, image.html et le sous-répertoire images voici l'arborescence résultante. Elle correspond au fichier de données indiqué en exemple plus haut. Les fichiers indiqués en italique sont ceux qui ont été générés.

liste.txt    fichier de données
galerie.html    modèle de la page d'accueil
image.html    modèle de la page d'affichage
MumGal.html    page d'accueil de la galerie
MumImg01.html    page d'affichage de la photo avion_gf.jpg
MumImg02.html    page d'affichage de la photo ruisseau_gf.jpg
images    sous-répertoire contenant les photos de la galerie
avion_pf.jpg    première photo en petit format pour la page d'accueil
avion_gf.jpg    première photo en grand format pour la page d'affichage
ruisseau_pf.jpg    deuxième photo en petit format pour la page d'accueil
ruisseau_gf.jpg    deuxième photo en grand format pour la page d'affichage


Après avoir enlever les fichiers liste.txt, galerie.html et image.html, il ne reste plus que l'arborescence d'une galerie parfaitement fonctionnelle. Vous pouvez appliquer ce petit programme à vos propres fichiers de données et vos propres modèles. Notez que, à part les balises [galerie], [precedent], [suivant] et [image] qui sont écrites dans le code source du programme, toutes les autres n'apparaissent que dans les fichiers de construction. Elles sont lues dans le fichier de données et remplacées si elles apparaissent dans les modèles. Vous pouvez par conséquent les supprimer ou en ajouter de nouvelles et adapter ainsi les modèles aux besoins de votre galerie.

Précisions importantes

Le code source présenté dans cette page vous est proposé sans aucune garantie. En l'utilisant, vous acceptez les termes de la GNU Public License telle qu'elle est proposée par la Free Software Foundation. Pour plus de renseignements sur le logiciel libre et la Free Software Foundation voyez le site de l'AFUL.

Si vous avez des questions sur ce générateur de page HTML, découvert un bug dans le code source proposé ici ou d'autres techniques à me proposer : écrivez-moi !!




TheM
Le site de Mumu