smarty template engine
Tuesday, October 07, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


Template a componenti

Tradizionalmente, programmare le applicazioni a template funziona cosė: per prima cosa si accumulano le variabili nell'applicazione PHP (magari con query al database). Poi, si istanzia l'oggetto Smarty, si assegnano le variabili e si visualizza il template. Allora supponiamo di avere, ad esempio, un riquadro che visualizza le quotazioni di Borsa (stock ticker) nel nostro template. In questo caso raccoglieremmo i dati sulle azioni nell'applicazione, poi assegneremmo le variabili al template e le visualizzeremmo. Ma non sarebbe bello poter aggiungere questo stock ticker a qualsiasi applicazione semplicemente includendo il template, senza preoccuparci della parte relativa al caricamento dei dati?

E' possibile fare questo scrivendo un plugin personalizzato che recuperi il contenuto e lo assegni ad una variabile del template.

Esempio 18-7. template a componenti

<?php

// mettiamo il file "function.load_ticker.php" nella directory dei plugin

// scriviamo la funzione che carica i dati
function fetch_ticker($symbol)
{
   
// qui metteremo la logica che carica $ticker_info da qualche parte
   
return $ticker_info;
}

function 
smarty_function_load_ticker($params, &$smarty)
{
   
// chiamiamo la funzione
   
$ticker_info fetch_ticker($params['symbol']);

   
// assegnamo la variabile del template
   
$smarty->assign($params['assign'], $ticker_info);
}
?>
index.tpl
---------

{* in index.tpl *}

{load_ticker symbol="YHOO" assign="ticker"}

Stock Name: {$ticker.name} Stock Price: {$ticker.price}



 

credits 

Smarty Copyright © 2002-2008
New Digital Group, Inc.

All rights reserved.