Les espaces de noms sont en effet très pratique dans le cadre de regroupement des variables dans de contexte commun.
- Les espaces de nom dans les templates
1. Exemple avec les fonctions set-block et def:
{def $variable='une variable sans namespace'}
{set-block name='mynamespace' variable=$variable}variable avec namespace{/set-block}
variable : {$variable}
variable dans l'espace mynamespace : {$mynamespace:variable}
2. Exemple avec la fonction include
Dans un template principal
{def $main_texte = 'Texte du fichier principal'}
{include uri='design:exemple.tpl' name='test'}
{*Affichage d'une variable définie dans le fichier exemple.tpl*}
{$test:foo}
Dans le fichier exemple.tpl
{*Affichage de la variable $main_texte du fichier principal*}
{$:main_texte}
{*définition d'une variable*}
{def $foo = 'Texte du fichier exemple.tpl'}
- Les espaces de noms dans les vues
Exemple :
$tpl = eZTemplate::factory ();
//pour les versions < 4.3
//$tpl = templateInit ();
$tpl->setVariable( 'nom_variable', 'valeur', 'nom_namespace' );
//pour les versions < 4.3
//$tpl = templateInit ();
$tpl->setVariable( 'nom_variable', 'valeur', 'nom_namespace' );
Il est important de noter que les espaces de noms eZ Publish n'agissent que sur les variables et ne doivent pas faire l'objet de confusion avec la portée (scope) des variables.