Gus06 : Framework de développement Java

Accueil Documentation Base de connaissances Article : Gus Script : l'héritage de templates
Article rédigé par gus le 07/02/2016 pour le projet Moteur de script Gus


Le mécanisme d'héritage entre templates est assuré par les balises extends et parent. La balise extends permet d'inclure un script en surchargeant ses blocs, et la balise parent, utilisée à l'intérieur d'un des blocs de redéfinition, permet de reprendre le contenu du bloc surchargé.

Regardons ce que cela peut donner sur un exemple de template HTML !

Premier niveau

Le template 01_html_template1 définit 2 blocs : header et body, placés dans une structure générale de page HTML.

Deuxième niveau

Le template 02_html_template2 hérite du template 01_html_template1 et surcharge ses blocs header et body. La nouvelle définition de header commence par rappeler la précédente définition grâce à la balise parent, avant d'ajouter du contenu personnalisé. Le bloc body est quant à lui complétement réécrit.

Troisième niveau

Le template 03_html_template3 hérite du template 02_html_template2 exactement de la même manière que ce dernier héritait du template initial. Le bloc body est de nouveau entièrement réécrit. Le bloc header reprend le contenu header précédent, qui reprenait déjà le contenu du header initial...

Quatrième niveau

Ce quatrième template ne surcharge pas le bloc header, qui reste donc inchangé par rapport au niveau précédent. La balise body est, quant à elle, surchargée, et rappelle sa définition issue de 3 niveaux différents grâce à la balise parent utilisée 3 fois, avec les valeurs d'option deep, 0, 1 et 2.

  • 0 est la valeur par défaut et correspond à la définition du bloc "parent" (dans le template directement hérité)
  • 1 est la valeur pour obtenir la définition du bloc "grand-parent" (dans le template hérité au niveau 2)
  • 2 est la valeur pour obtenir la définition du bloc "arrière grand-parent" ...

On notera qu'il est possible d'utiliser des valeurs négatives -1,-2,... pour indiquer un ancètre en partant du premier template hérité.