Using templates

From GeneWeb
Revision as of 00:33, 17 April 2016 by A2 (talk | contribs) (add manual category and navigation template)
Jump to navigation Jump to search
150px-Geographylogo svg.png Language:   English • français

The gwd server produces the HTML code displayed by the client browser according to instructions stored into text files. Examples of such files are:

  • welcome.txt the welcome page shown when you connect to localhost:2317/basename.
  • perso.txt the page that displays one individual of the base.
  • updfam.txt the page containing the form to update a family.

A template is a set of such files organized into a coherent user interface. Template files are stored in folders named geneweb/gw/etc/template_name.

Templates are invoqued by adding (through a clickable button if available, or manually if not) templ=templ_name; in the URL at the top of your browser. GeneWeb will "remember" this request for a template use and will automatically add the appropriate text in all subsequent URL requests.

When executing its tasks, gwd will search for the needed files in several folders in the following sequence:

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

where -bdir is the value of the -bd parameter of gwd, and gw is the folder in which sits gwd.

As a result, you may limit your editing to the file whose content you want to change. All the other files will be found in the default folder.

See the experts section for further discussion on template programming.

Perso.txt

The file perso.txt offers an additional customization level by providing several options for the display of personal data. The code below is somewhat self explanatory:


%import;perso_utils

%include.perso_header;

%if;(bvar.perso_module_tplnb="" or bvar.perso_module_tplnb=0)
  %apply;show_templ("perso_module/etat_civil")
  %apply;show_templ("perso_module/parent_simple")
  %apply;show_templ("perso_module/union_simple")
  %apply;show_templ("perso_module/freresoeur_simple")
  %apply;show_templ("perso_module/relations")
  %apply;show_templ("perso_module/timeline")
  %apply;show_templ("perso_module/notes")
  %apply;show_templ("perso_module/sources")
  %apply;show_templ("perso_module/arbre_3gen_v_photo")
%else;
  %for;i;0;bvar.perso_module_tplnb;
    %apply;get_templ(i)
  %end;
%end;

For most of the modules, several alternatives are available and can be selected by editing the appropriate line. here is the current content of the perso_modules folder:

drwxr-xr-x  23 Henri  staff    782  1 oct 22:26 .
drwxr-xr-x  64 Henri  staff   2176 15 oct 23:56 ..
-rw-r--r--   1 Henri  staff   3979  1 oct 22:26 arbre_3gen_v.txt
-rw-r--r--   1 Henri  staff  12691  1 oct 22:26 arbre_3gen_v_photo.txt
-rw-r--r--   1 Henri  staff  10477  1 oct 22:26 arbre_4gen_v.txt
-rw-r--r--   1 Henri  staff  19592  1 oct 22:26 arbre_5gen_h.txt
-rw-r--r--   1 Henri  staff   2303  1 oct 22:26 etat_civil.txt
-rw-r--r--   1 Henri  staff   7283  1 oct 22:26 famille.txt
-rw-r--r--   1 Henri  staff   2964  1 oct 22:26 freresoeur_complet.txt
-rw-r--r--   1 Henri  staff   2972  1 oct 22:26 freresoeur_simple.txt
-rw-r--r--   1 Henri  staff   1636  1 oct 22:26 notes.txt
-rw-r--r--   1 Henri  staff    785  1 oct 22:26 parent_complet.txt
-rw-r--r--   1 Henri  staff    431  1 oct 22:26 parent_evolue.txt
-rw-r--r--   1 Henri  staff   1653  1 oct 22:26 parent_photo.txt
-rw-r--r--   1 Henri  staff    271  1 oct 22:26 parent_simple.txt
-rw-r--r--   1 Henri  staff   1877  1 oct 22:26 relations.txt
-rw-r--r--   1 Henri  staff    360  1 oct 22:26 sources.txt
-rw-r--r--   1 Henri  staff   1099  1 oct 22:26 timeline.txt
-rw-r--r--   1 Henri  staff   7374  1 oct 22:26 union_complet.txt
-rw-r--r--   1 Henri  staff   3636  1 oct 22:26 union_evolue.txt
-rw-r--r--   1 Henri  staff   2532  1 oct 22:26 union_photo.txt
-rw-r--r--   1 Henri  staff   1861  1 oct 22:26 union_simple.txt

Changing the content of perso.txt can be achieved through a set of parameters stored in the .gwf file where the value of the parameter is the name of the desired module:

perso_module_0=etat_civil
perso_module_1=parent_simple
perso_module_2=union_simple
perso_module_3=freresoeur_simple
perso_module_4=relations
perso_module_5=notes
perso_module_6=sources
perso_module_7=arbre_3gen_v_photo

One must add a last parameter specifying the total number of sub-templates

perso_module_tplnb=8

Examples

The result corresponding to each choice is as follows:


File name Example
etat_civil
File:etatcivil.jpg
Personal data.
parent_simple
File:parent simple.jpg
Parents (simple).
parent_evolue
File:parent evolue.jpg
Parents (more complex).
parent_complet
File:parent complet.jpg
Parents (full).
parent_photo
File:parent photo.jpg
Parents (with photo).
union_simple
File:union simple.jpg
Union (simple).
union_evolue
File:union evolue.jpg
Union (more complex).
union_complet
union_photo
File:union photo.jpg
Union (with photo).
freresoeur_simple
File:freresoeur simple.jpg
Brothers and sisters (simple).
freresoeur_complet
File:freresoeur complet.jpg
Brothers and sisters (full).
famille
relations
notes
sources
timeline
arbre_3gen_v
File:arbre nav3.jpg
Tree, vertical, 3 generations.
arbre_nav3_photo
File:arbre nav3photos.jpg
Tree, vertical, 3 generations with photos.
arbre_4gen_v
File:arbre nav4.jpg
Tree, vertical, 4 generations.
arbre_5gen_h
File:arbre nav5h.jpg
Tree, horizontal, 5 generations.


GeneWeb Manual

Rembrandt Old Man Reading a Book.jpg

Use and manage genealogical databases

Technical annex