Chapter 7. Funzioni incorporate

Table of Contents

capture
config_load
foreach,foreachelse
iteration
first
last
show
total
include
include_php
insert
if,elseif,else
ldelim,rdelim
literal
php
section,sectionelse
index
index_prev
index_next
iteration
first
last
rownum
loop
show
total
strip

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.

capture

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}