Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

{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 attribut Type Requis Defaut Description
var mixed Oui n/a Variable (ou chaîne de caractères) à évaluer
assign chaîne de caractères Non n/a Le 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.

Example 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>.

  

Example 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}