What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
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.
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.
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}