Utilisation des templates

From GeneWeb
Revision as of 21:27, 10 October 2017 by Henri83 (Talk | contribs)

Jump to: navigation, search
150px-Geographylogo svg.png Language: English • français

Le serveur gwd produit le code HTML affiché par votre navigateur à partir d'instructions conservées dans un fichier texte. Des exemples de tels fichiers sont :

  • welcome.txt la page d'accueil de votre base lorsque vous vous connectez à localhost:2317/basename
  • perso.txt la page qui affiche les données spécifiques d'un individu
  • updfam.txt la page contenant le formulaire de saisie des éléments d'une famille

Un ensemble de fichiers constituant une interface utilisateur cohérente s'appelle un "template".

Les templates sont invoqués en ajoutant (avec un bouton cliquable si disponible, ou manuellement si non) le texte templ=templ_name; dans l'URL qui apparait et haut de votre navigateur. GeneWeb se "souviendra" de cette demande de template et insèrera le code correspondant dans toutes les URL à suivre (la variable templ fait partie des variables contextuelles de gwd).

Les fichiers d'un template sont stockés dans un dossier de la distribution appelé geneweb/gw/etc/template_name.

Quand gwd a besoin d'un fichier, il le recherche successivement et dans cet ordre dans les endroits suivants :

bdir/etc/base/
gw/etc/template_name/
gw/etc/

-bdir est la valeur du paramètre -bd de gwd, et gw est le dossier dans lequel réside gwd.

Si aucun fichier n'est trouvé, on parcours successivement les templates définis par la variable template du fichier de configuration base.gwf.

Vous pouvez par conséquent vous limiter à l'édition d'un seul fichier, les autres seront trouvés dans les dossiers par défaut.

Modules de personnalisation

La version 7 de GeneWeb offre nouvelle manière pour personnaliser l'aspect de la page personnelle. Cette solution repose sur l'existence d'une liste de modules définis dans le fichier de configuration base.gwf en associant chaque module à une lettre entre a et z (attention à ne pas mettre de texte supplémentaire après le nom de l'option - ni espaces, ni commentaires!).

  perso_module_i=individu
  perso_module_p=parents
  perso_module_f=fratrie
  ...

Associée à ces modules, la variable contextuelle p_mod définira l'ordre dans lequel ces modules seront affichés, et pour chacun d'eux une valeur d'option comprise entre 0 et 9 qui pourra modifier le comportement du module. Ce paramètre est constitué par une succession de paires "lettre, chiffre", la lettre précisant le module et le chiffre l'option d'affichage. Ces paires apparaissent dans l'ordre d'affichage souhaité comme dans l'exemple ci-dessous : "individu" (option 1), "parents" (option 2), "fratrie" (option 3) et "unions" (option 1).

p_mod=p_mod=i1p2f3u1

Dans cet autre exemple

P_mod=i1l1i2l1i3l1i4

on affichera les quatre variantes du module individu séparées par une ligne horizontale.

Le fichier de configuration par défaut a.gwf donne la liste des modules actuellement disponibles, sachant qu'il est toujours possible pour un utilisateur de rajouter ses propres modules qu'il conservera dans le dossier

bases/etc/perso_modules/nouveau_module.txt

On notera aussi que la valeur du paramètre p_mod peut être conservée dans le fichier base.gwf de votre base. Elle est reportée dans l'URL (au même titre que la variable templ=) et peut donc être mémorisée dans l'URL d'un raccourci conservé dans votre navigateur. Cette dernière approche sera particulièrement utile pour les utilisateurs d'un service tel que la base Roglo. En effet, GeneWeb ne sait pas conserver un profil spécifique à chaque visiteur.

Une interface graphique permet la sélection et le choix des options. L'affichage de vignettes permet de se rendre compte de l'aspect global de chaque option et de la page résultant de leur assemblage. Les modules personnels ajoutés par l’utilisateur n'apparaissent pas dans l'interface graphique mais restent accessibles en éditant manuellement le vecteur p_mod=. Pour les faire apparaître dans l’interface graphique, il faut éditer le fichier gw/etc/p_mod.js en s'inspirant des modules existants.

Starting page for GeneWeb.

On notera sur cette interface le bouton le plus à droite qui active un mode d'affichage prédéfini p_mod=zz sur deux colonnes.

Perso.txt

Le fichier perso.txt gère l'affichage des pages d'informations associées à chaque individu. Son développement dans le temps a abouti à trois modes d'affichage que l'utilisateur peux choisir et même personnaliser.

La structure d'ensemble du fichier template perso.txt est la suivante :

Import des fonctions utilitaires et affichage de la barre de menus.

%import;perso_utils;
%include.menubar;

Trois modes d'affichage : 1/ affichage sur deux colonnes, données fixes

%if;(p_mod="zz")
 %(Statique%)
 %( two columns if screen_width>=992px but full width for tablets/phone < 992px %)
   %if;(has_parents and (father.has_parents or mother.has_parents))
         %let;op_m;1%in;%apply;show_templ("perso_module/gr_parents")
   %end;
 %(be carefull h1 is full width then an opening
in individu module %)
     %let;op_m;3%in;%apply;show_templ("perso_module/individu")
     %let;op_m;2%in;%apply;show_templ("perso_module/unions")
     %let;op_m;1%in;%apply;show_templ("perso_module/chronologie")
     %let;op_m;1%in;%apply;show_templ("perso_module/notes")
     %let;op_m;2%in;%apply;show_templ("perso_module/sources")
 %( closing the
in module individu %)
%(second column above lg%)
       %let;op_m;2%in;%apply;show_templ("perso_module/arbre_3gen_photo")
       %let;op_m;1%in;%apply;show_templ("perso_module/fratrie")
       %let;op_m;1%in;%apply;show_templ("perso_module/relations")

2/ affichage sur une colonne. Modules de 0 à perso_module_tplnb -1 tels que définis dans le fichier .gwf

%elseif;(bvar.perso_module_tplnb!="" and bvar.perso_module_tplnb>0)
 %(Dynamique, perso_module_tplnb : %bvar.perso_module_tplnb;
%)  %for;i;0;bvar.perso_module_tplnb;  %apply;get_templ(i)  %end;

3/ affichage sur une colonne. Modules de a à z tels que définis dans le fichier .gwf et gouvernés par le vecteur de modules/options défini dans la variable p_mod

%elseif;(p_mod!="" and p_mod!="zz")
 %(Dynamic %)
   %for;i;0;p_mod_nbr;
     %let;mmi;%apply;mm(i)%in;
     %let;ooi;%apply;oo(i)%in;
     %if;(mmi!="" and ooi!=0)
       %apply;get_mod(mmi, ooi)
     %end
   %end;

%else; %(Nothing %) %end;


Exemples de définitions des modules pour le cas 2/ :

perso_module_0=individu
perso_module_1=parents
perso_module_2=unions
perso_module_3=fratrie
perso_module_4=relations
perso_module_5=notes
perso_module_6=sources
perso_module_7=arbres
perso_module_8=timeline
perso_module_9=gr_parents
perso_module-10=ligne

perso_module_tplnb=8

et pour le cas 3/ :

perso_module_i=individu
perso_module_p=parents
perso_module_u=unions
perso_module_f=fratrie
perso_module_r=relations
perso_module_c=chronologie
perso_module_n=notes
perso_module_s=sources
perso_module_a=arbres
perso_module_g=gr_parents
perso_module_l=ligne


Exemples

Chaque sous-module produit les résultats ci-dessous :

(les exemples ci dessous sont extraits d'une version 6, et peuvent être différents avec la version 7)

Fichier Exemple
personnal_data
Personal data.
parents, option=1
Parents (simple).
parents, option 2
Parents (more complex).
parents, option 3
Parents (full).
parent, option 4
Parents (with photo).
unions, option 1
Union (simple).
unions, option 2
Union (more complex).
unions, option 3
Union (full).
unions, option 4
Union (with photo).
siblings, option 1
Brothers and sisters (simple).
siblings, option 2
Brothers and sisters (full).
family
Family.
relations
Relations.
notes
Notes.
sources
Sources.
timeline
trees, option 3
Tree, vertical, 3 generations.
trees, option 1
Tree, vertical, 3 generations with photos.
trees, option 4
Tree, vertical, 4 generations.
trees, option 5
Tree, horizontal, 5 generations.

Manuel GeneWeb

Rembrandt Old Man Reading a Book.jpg

Utiliser et gérer une base généalogique

Annexe technique