Table of Contents
Smarty è dotato di numerose funzioni incorporate. Queste funzioni sono integrate nel linguaggio del template: non è possibile creare funzioni utente con gli stessi nomi, e nemmeno modificare le funzioni incorporate.
Nome Attributo | Tipo | Obbligatorio | Default | Descrizione |
---|---|---|---|---|
name | stringa | no | default | Nome del blocco catturato |
assign | stringa | no | nessuno | Nome della variabile cui assegnare l'output catturato |
capture si usa per intercettare l'output del template assegnandolo ad una variabile invece di visualizzarlo. Qualsiasi contenuto compreso fra {capture name="foo"} e {/capture} viene aggiunto alla variabile specificata nell'attributo name. Il contenuto catturato può essere usato nel template utilizzando la variabile speciale $smarty.capture.foo dove foo è il nome passato nell'attributo name. Se non fornite un attributo name, verrà usato "default". Tutti i comandi {capture} devono essere chiusi con {/capture}. E' possibile nidificarli.
Nota tecnica
Le versioni da 1.4.0 a 1.4.4 di Smarty mettevano il contenuto catturato nella variabile $return. A partire dalla 1.4.5 si utilizza l'attributo name, quindi modificate i vostri template di conseguenza.
Caution
Fate attenzione se catturate l'output di insert. Se avete il caching attivato e usate comandi insert che vi aspettate vengano eseguiti nel contenuto in cache, non catturate questo contenuto.
Example 7.1. catturare il contenuto del template
{* vogliamo stampare la riga di tabella solo se c'è del contenuto *} {capture name=banner} {include file="get_banner.tpl"} {/capture} {if $smarty.capture.banner ne ""} <tr> <td> {$smarty.capture.banner} </td> </tr> {/if}