Scusa, ma, a parte i metodi che valorizzano variabili in maniera automatica che c'entrano poco con il problema originale, secondo me non hai risolto granchè:Originariamente inviato da gangiaemi
Ciao ragazzi,
mi rispondo da solo
.........
3 filese: header.tpl , content.tpl, footer.tpl.
il metodo si chiama : showContent($content);
I metodi getHeader() e getFooter() eseguono delle operazioni come il settaggio dinamico dei metatitle , metakeywords e meta descriptions , e la semplice visualizzazione del footer.tpl.codice:public function showContent($content){ $this->getHeader(); $template_name =_WS_THEME_DIR_.'content.tpl'; $content = $this->fetch("db_smarty:{.$template_name.}"); $this->assign('CONTENT', $content); $this->display('content.tpl'); $this->getFooter(); }
- il metodo fetch restituisce il risultato del template, come da pagina del manuale di smarty, assegnare tale risultato ad una variabile e quindi fare il display del templete stesso è uno spreco di memoria;
- assegnando un valore ad una variabile con il metodo assign, rende la variabile disponibile nel template di cui viene fatto il display e per tutti i file che vengono inclusi "smarty way" (cioè usando {include file="pippo.tpl"}, nel tuo caso te lo fa il fetch.
- sono un po' arrugginito con smarty, ma se non ricordo male fetch non controlla in automatico se esiste la cache del file.
come detto è da tempo che non uso smarty, ma mi permetto di consigliarti o di leggere meglio il manuale o di passare ad un framework MVC, perché ho sempre trovato inutile la creazione di un linguaggio simil-php per tenere separati php e html, quando il problema di fondo è, semmai, separare logica da rappresentazione.
![]()

Rispondi quotando