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:
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.
Example 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}