Get Smarty

Donate

Paypal

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

insert

Nome Attributo Tipo Obbligatorio Default Descrizione
name stringa nessuno Nome della funzione di insert (insert_name)
assign stringa no nessuno Nome della variabile del template cui verrà assegnato l'output
script stringa no nessuno Nome dello script php che viene incluso prima della chiamata alla funzione di insert
[variabile ...] [tipo variabile] no nessuno Variabile da passare alla funzione di insert

I tag insert funzionano praticamente come i tag include, ad eccezione del fatto che i tag insert non vengono messi in cache quando avete il caching del template abilitato. Verranno quindi eseguiti ad ogni chiamata del template.

Diciamo che abbiamo un template con uno spazio banner in cima alla pagina. Il banner può contenere qualsiasi mescolanza di HTML, immagini, flash, ecc., quindi non possiamo usare un link statico, e non vogliamo che questo contenuto sia messo in cache con la pagina. Ecco quindi l'utilità del tag insert: il template conosce i valori di #banner_location_id# e #site_id# (presi da un file di configurazione), e ha bisogno di chiamare una funzione per ottenere il contenuto del banner.

Example 7.10. funzione insert

{* esempio di caricamento di un banner *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}

In questo esempio stiamo usando il nome "getBanner" e passiamo i parametri #banner_location_id# e #site_id#. Smarty cercherà una funzione chiamata insert_getBanner() nell'applicazione PHP, passandole i valori di #banner_location_id# e #site_id# come primo argomento in un array associativo. Tutti i nomi di funzioni di insert nell'applicazione devono essere prefissati con "insert_", per evitare possibili conflitti nei nomi di funzione. La nostra funzione insert_getBanner() farà qualcosa con i valori passati e restituirà il risultato, che verrà visualizzato nel templat al posto del tag insert. In questo esempio, Smarty chiamerebbe questa funzione: insert_getBanner(array("lid" => "12345","sid" => "67890")); e visualizzerebbe il risultato restituito al posto del tag insert.

Se fornite l'attributo "assign", l'output del tag insert verrà assegnato a questa variabile invece di essere mostrato nel template. NOTA: assegnare l'output ad una variabile non è molto utile se il caching è abilitato.

Se fornite l'attributo "script", questo script verrà incluso (una volta sola) prima dell'esecuzione della funzione di insert. Questo caso può presentarsi quando la funzione di insert può non esistere ancora, e uno script php deve essere quindi incluso per farla funzionare. Il percorso può essere assoluto o relativo a $trusted_dir. Se la security è abilitata, lo script deve trovarsi in $trusted_dir.

Come secondo argomento viene passato l'oggetto Smarty. In questo modo potete ottenere e modificare informazioni nell'oggetto Smarty dall'interno della funzione di insert.

Nota tecnica

E' possibile avere porzioni di template non in cache. Se avete il caching abilitato, i tag insert non verranno messi in cache. Verranno quindi eseguiti dinamicamente ogni volta che la pagina viene creata, anche se questa si trova in cache. Questo viene utile per cose come banner, sondaggi, situazione del tempo, risultati di ricerche, aree di feedback utenti, ecc.

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors