| # GeneWeb: Personnalisation des pages

Cette partie indique comment personnaliser les pages d'accueil et les autres pages et mettre des pages associées. Elle s'adresse aux personnes ayant déjà un peu manipulé GeneWeb et qui veulent entrer dans les détails.

- Page d'accueil
- Macros
- Pages associées
- Personnalisation de toutes les pages

### Page d'accueil

La page d'accueil est construite à partir de fichiers texte, les fichiers "start.txt" fournis avec la distribution de GeneWeb. Il est possible de modifier ces fichiers et/ou d'en faire une version spécifique pour une base de données.

Ces fichiers contiennent du HTML mélangé avec des "macros" (voir section suivante). Si vous voulez créer de tels fichiers ou les modifier, n'utilisez pas d'éditeur de HTML, mais un éditeur de textes normal.

Pour construire la page d'accueil de la base "toto", GeneWeb va chercher parmi les fichiers suivants, dans cet ordre:

- bdir/lang/lg/toto.txt
- hdir/lang/lg/toto.txt
- bdir/lang/toto.txt
- hdir/lang/toto.txt
- bdir/lang/lg/start.txt
- hdir/lang/lg/start.txt
- bdir/lang/start.txt
- hdir/lang/start.txt

où:

- "bdir" = valeur de "-bd" de la commande "gwd" (défaut: répertoire courant).
- "hdir" = valeur de "-hd" de la commande "gwd" (défaut: répertoire courant).
- "lg" = langue courante.

Les fichiers "hdir/lang/lg/start.txt" sont fournis avec la distribution. Pour vous faire un fichier personnalisé, le plus simple est de partir d'une copie d'un fichier "start.txt" que vous arrangerez à votre façon. Si la présentation des fichiers "start.txt" ne vous plait pas, vous pouvez aussi les changer directement.

Attention cependant: d'une version de GeneWeb à l'autre, les fichiers "start.txt" peuvent être améliorés. Si vous prenez une nouvelle version et voulez profiter des améliorations, regardez si les fichiers "start.txt" ont été modifiés et incluez leurs modifications dans vos fichiers personnalisés.

### Macros

Comme indiqué précédemment, les fichiers de pages d'accueil ne sont pas du pur HTML. Ils contiennent des "macros". Ce sont des séquences commençant par le caractère "%" et suivis par une lettre. Exemples: "%s", "%x", etc.

Ces macros sont remplacées par des valeurs qui dépendent du contexte: nom de la base, langue, nombre de personnes dans la base, etc.

Il y a également un traitement particulier pour les crochets "[" et "]": s'il y a un texte entre crochets, il est traduit dans la langue courante à partir du lexique (fichier "lexicon.txt") avec les modifications suivantes:

- S'il y a une étoile après le crochet ouvrant, la première lettre de la traduction est convertie en majuscule.
- Si le crochet fermant est suivi d'un nombre, cela correspond à la n-ème occurrence de la traduction (commençant à 0), les occurrences étant séparées par des "/". Si cette occurrence n'existe pas, c'est la première qui est prise.

Pour comprendre comment les macros sont utilisées, le mieux est de regarder les fichiers "start.txt" fournis avec la distribution.

Voici le sens des macros "%":

- Base.
  - "`%t`" : nom de la base.
  - "`%f`" : en mode serveur, nom de la base, suivi de l'eventuel mot de passe (ex: "toto_xyzzy"); en mode CGI, nom de la commande CGI (ex: "gwd.exe").
  - "`%g`" : en mode serveur, comme "%f"; en mode CGI, nom de la commande CGI suivi de "?b=", du nom de la base et d'un point-virgule (ex: "gwd.exe?b=toto;").
  - "`%s`" : valeur de "%f" suivi d'un point d'interrogation et des variables contextuelles (voir ci-dessous) suivies d'un point-virgule. Ex: "toto?lang=it;iz=8233;".
- Compte.
  - "`%c`" : nombre d'accès à la page d'accueil.
  - "`%q`" : nombre de requêtes.
  - "`%d`" : date de la première consultation.
- Conditionnels.
  Les conditionnels commencent par "`%I`" suivi d'une expression booléenne (vrai ou faux) et se terminent par "`%E`". Le texte entre ces deux macros est affiché si et seulement si l'expression booléenne est vraie. Une expression booléenne est soit:
  - "`f`" : on est "ami"
  - "`w`" : on est "magicien"
  - "`j`" : on est "magicien" juste "ami" (cf fichier a.gwf, "wizard_just_friend")
  - "`c`" : on est en mode cgi
  - "`h`" : il y a un fichier historique
  - "`l`" : le navigateur ne traite pas les tables
  - "`n`" : il y a des notes pour la base de données
  - "`t`" : il y a une recherche par titres de noblesse
  - "`z`" : il y a une personne prise comme référence Sosa (voir macro "`%u`")
  - "`a`" : il y a une restriction globale d'accès à la base de données
  - "`N`" : contraire de l'expression qui suit
  - "`|`" : "ou" logique entre les deux expressions qui suivent
  - "`&`" : "et" logique entre les deux expressions qui suivent
  Exemples:
  - afficher le texte s'il y a une recherche par titre: `%It...%E`
  - afficher le texte si on est ni "magicien" ni "ami": `%I&NwNf...%E`
- Divers.
  - "`%r`" suivi d'un nom et d'un retour-ligne : inclusion du fichier "nom.txt".
  - "`%b`" : valeur de la variable "body_prop" du fichier "toto.gwf" pour la base "toto".
  - "`%h`" : variables contextuelles (voir ci-dessous) sous la forme "<input type=hidden name=var value=val>".
  - "`%l`" : langue.
  - "`%n`" : nombre de personnes de la base.
  - "`%u`" : personne prise comme référence Sosa.
  - "`%%`" : un seul "%".
  - "`%[`" : un "[".
  - "`%]`" : un "]".

Certaines macros font références à des variables contextuelles. Ce sont:

- b : en mode CGI, nom de la base.
- lang : langue.
- iz : numéro de l'éventuelle personne prise comme référence Sosa.

### Pages associées

Dans votre page d'accueil personnalisée, vous pouvez mettre des liens vers des fichiers associés qui seront traités par GeneWeb de la même façon: les macros y seront transformées.

Par exemple, si vous voulez mettre une page spéciale sur les personnes célèbres de votre base, faites un fichier que vous nommerez "celebres.txt" et que vous mettrez dans le répertoire "bdir/lang/lg" ou le répertoire "bdir/lang" (voir première section).

La requête d'accès à "celebres.txt" s'écrit: "m=H;v=celebres". Dans la page d'accueil, vous mettrez donc:

       Les gens <a href="%sm=H;v=celebres">célèbres</a>
       de ma base.

Dans "celebres.txt", vous pourrez mettre des liens vers des personnes de votre base, indépendamment de son nom et du contexte, en utilisant les bonnes macros.

Les macros particulièrement intéressantes sont:

- "`%b`" que vous pourrez mettre dans le tag "<body>" en l'écrivant "<body%b>".
- "`%s`" que vous pourrez mettre dans les liens.

Exemple de phrase dans "celebres.txt":

       Voyez mon cousin <a href="%sp=louis;n=de+bourbon;oc=5">
       Louis XIV</a> et mes
       <a href="%sem=R;ep=jean;en=dupont;m=NG;n=louis+xiv;t=PN">
       liens de parenté</a> avec lui.

Voyez également comment faire correctement des liens vers des pages de GeneWeb.

Remarquez que la "requête évoluée" fonctionne comme un fichier associé, de nom "advanced.txt".

### Toutes les pages

Les pages, y compris la page d'accueil, peuvent être personnalisées à trois endroits:

- Vous pouvez ajouter un fichier de nom base.hed (si "base" est le nom de votre base de données) qui sera inséré dans tous les en-têtes des pages (entre <head> et </head>). Permet d'y insérer des feuilles de style, par exemple. À mettre dans le répertoire "lang" et/ou, si vous voulez qu'il soit différent pour la langue "xy" dans le répertoire "lang/xy".
- De même, vous pouvez ajouter un fichier de nom base.trl qui sera inséré derrière le copyright de GeneWeb à chaque page.
- Enfin, vous avez la possibilité de positionner la variable `body_prop` de votre fichier base.gwf qui sera inséré dans la balise "<body>" de toutes les pages. Utile pour mettre une couleur ou un motif de fond, ou pour changer les couleurs des textes affichés. Voir cette section du chapitre "comment démarrer avec GeneWeb".

Retour vers Mode d'Emploi

Copyright (c) 1998-2005 INRIA - GeneWeb