6.1 Utilisation des templates

Les templates utilisés pour les vues de documents sont gérés par la classe Layout. Cette classe permet de renseigner des parties variables définies dans un fichier texte.

Le mécanisme de template utilisé dans Dynacase utilise des placeholders de la forme [keyword].

6.1.1 Valeurs atomiques

Elles sont définies au moyen de la méthode Layout::set. Par exemple :

Le template atomic.xml :

La somme de [X] + [Y] = [XplusY]
Le produit de [X] * [Y] = [XfoisY]

Associé au fichier atomic.php :

$lay = new Layout("atomic.xml");
$x=34;
$y=78;
$lay->set("X",$x);
$lay->set("Y",$y);
$lay->set("XplusY",$x+$y);
$lay->set("XfoisY",$x*$y);
print $lay->gen();

Donne :

La somme de 34 + 78 = 112
Le produit de 34 * 78 = 2652

6.1.2 valeurs multiples

Elles sont définies au moyen de la méthode Layout::setBlockData. Par exemple :

Le template multiplication.xml :

Table de multiplication de [X]
[BLOCK MUL]
- [X] * [Y] = [XfoisY][ENDBLOCK MUL]

Associé au fichier multiplication.php :

$lay = new Layout("multiplication.xml");
$x=3;
$tmul = array(); // tableau pour le bloc MUL
 
for ($i=1; $i<10; $i++) {
    $tmul[] = array(
        "Y"      => $i,
        "XfoisY" => $i*$x
    );
}
 
$lay->set("X",$x);
$lay->setBlockData("MUL",$tmul);
print $lay->gen();

Donne :

Table de multiplication de 3
 
- 3 * 1 = 3
- 3 * 2 = 6
- 3 * 3 = 9
- 3 * 4 = 12
- 3 * 5 = 15
- 3 * 6 = 18
- 3 * 7 = 21
- 3 * 8 = 24
- 3 * 9 = 27
- 3 * 10 = 30

6.1.3 Conditions

Elles sont définies au moyen de la méthode Layout::set. Par exemple :

Le template cond.xml :

[IF Interdit]Interdit is true[ENDIF Interdit]
[IFNOT Interdit]Interdit is false[ENDIF Interdit]

Associé au fichier cond.php :

$lay = new Layout("cond.xml");
$lay->set("Interdit",false);

Donne :

Interdit is false

6.1.4 Internationalisation de texte

Pour rendre du texte traduisible, il faut utiliser la syntaxe [TEXT:translate me]. Ce texte sera automatiquement ajouté au catalogue de traduction, et sera remplacé par sa traduction lors du rendu du template.

Pour plus de détail, voir le chapitre Internationalisation.

×