smarty template engine
Sunday, September 07, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


{eval}

{eval} évalue une variable comme si cette dernière était un template. Peut être utile pour embarquer des balises de templates ou des variables de template dans des variables ou des balises/variables dans des variables de fichiers de configuration.

Si vous définissez l'attribut assign, la sortie sera assignée à la variable de template désignée plutôt que d'être affichée dans le template.

Nom attributTypeRequisDefautDescription
varmixedOuin/aVariable (ou chaîne de caractères) à évaluer
assignchaîne de caractèresNonn/aLe nom de la variable PHP dans laquelle la sortie sera assignée

Note technique :

  • Les variables évaluées sont traitées de la même façon que les templates. Elles suivent les mêmes règles de traitement et de sécurité, comme si elles étaient réellement des templates.

  • Les variables évaluées sont compilées à chaque invocation, et la version compilée n'est pas sauvegardée ! Toutefois, si le cache est activé, la sortie sera placée en cache avec le reste du template.

Exemple 8-6. {eval}

Le contenu du fichier de configuration, setup.conf.

#setup.conf
#----------
emphstart = <strong>
emphend = </strong>
titre = Bienvenue sur la homepage de {$company} !
ErrorVille = Vous devez spécifier un nom de {#emphstart#}ville{#emphend#}.
ErrorDept = Vous devez spécifier un {#emphstart#}département{#emphend#}.

Où le template est :

{config_load file='setup.conf'}

{eval var=$foo}
{eval var=#titre#}
{eval var=#ErrorVille#}
{eval var=#ErrorDept# assign='state_error'}
{$state_error}

L'exemple ci-dessus affichera :

Ceci est le contenu de foo.
Bienvenue sur la homepage de FictifLand.
Vous devez spécifier un nom de <strong>ville</strong>.
Vous devez spécifier un <strong>département</strong>.

Exemple 8-7. un autre exemple avec {eval}

Ceci va afficher le nom du serveur (en majuscule) et son IP. La variable $str également venir d'une requête de base de données.

<?php
$str 
'Le nom du serveur est {$smarty.server.SERVER_NAME|upper} '
.'at {$smarty.server.SERVER_ADDR}';
$smarty->assign('foo',$str);
?>

Où le template est :

{eval var=$foo}



 

credits 

Smarty Copyright © 2002-2008
New Digital Group, Inc.

All rights reserved.