Smarty est fourni en standard avec plusieurs fonctions natives.
Ces fonctions natives sont partie intégrante du moteur de Smarty.
Vous ne pouvez pas créer de
fonctions utilisateurs
qui portent le même nom qu'une fonction native et vous ne pouvez pas non
plus en modifier le comportement.
{capture}
{capture} est utilisé pour récupérer la sortie d'éléments dans
une variable au lieu de les afficher. Tout contenu situé entre
{capture name='foo'} et {/capture}
est intercepté dans une variable dont le nom est spécifié dans l'attribut
name.
Le contenu capturé peut être utilisé dans
le template par l'intermédiaire de la variable spéciale
$smarty.capture.foo
où << foo >> est la valeur de l'attribut name.
Si vous ne donnez pas de valeur à l'attribut name, alors
<< default >> est utilisé en tant que nom, i.e.
$smarty.capture.default.
{capture} peut être imbriqué.
Attention :
Faîtes attention lorsque vous interceptez la sortie de commandes
{insert}.
Si vous avez configuré le cache pour que ce
dernier soit actif, et que vous avez des commandes {insert}
supposées s'exécuter dans un contenu en cache, ne tentez pas de capturer
ce contenu.
Exemple 7-1. {capture} avec le nom de l'attribut {* nous ne voulons afficher une balise div que si le contenu est affiché. *}
{capture name=banner}
{include file='get_banner.tpl'}
{/capture}
{if $smarty.capture.banner ne ""}
<div id="banner">{$smarty.capture.banner}</div>
{/if} |
|
Exemple 7-2. {capture} dans une variable de template Cet exemple démontre également la fonction
{popup}
{capture name=some_content assign=popText}
Le serveur est {$smarty.server.SERVER_NAME|upper} sur {$smarty.server.SERVER_ADDR}<br>
Votre IP est {$smarty.server.REMOTE_ADDR}.
{/capture}
<a href="#" {popup caption='Information sur le serveur' text=$popText}>Aide</a> |
|
Voir aussi
$smarty.capture,
{eval},
{fetch},
fetch() et
{assign}.