PHP : class_template.php - Documentation

Obiettivo

La classe class_template.php serve per sviluppare pagine PHP mantenendo in files diversi la creazione dei dati (es. da un DB) e la parte HTML che serve per la visualizzazione degli stessi. I due files avranno normalmente lo stesso nome, uno con estensione PHP e l'altro HTML

Strttura delle pagine HTML
 

Le pagine HTML(templates) saranno costruite in modo normale. Al posto dei valori che si intendono cambiare si metteranno delle variabili.

  es.: Supponiamo che vogliate avere una riga di saluto: Ciao, Mariella ! (dove Mariella è il nome dello user collegato) scriveremo nella parte html:
 
   
Ciao $user!
 
  Oltre alle variabili semplici possiamo anche definire delle variabili con diversi valori.
  es.:
I vini che mi piacciono sono:
{rep vino}$vino {/rep vino}.
 
  Ancora più interessante se vogliamo sostituire delle intere righe, tipicamente delle tabelle.
  es.: <table width="240" border="0">
<tr bgcolor="#999999">
<td>NomeCol--></td>
<td>Mio</td>
<td>tuo</td>
</tr>
{rep colonna}
<tr>
<td bgcolor="#CCCCCC">--></td>
<td bgcolor="#99CC99">$mio</td>
<td bgcolor="#99CC99">$tuo</td>
</tr>
{/rep colonna}
</table>
 
  Notare che la definizione della tabella è stata fatta normalmente con il solito editor HTML. Quindi si è semplicemente aggiunto il marker di repeat. In questo caso la matrice con i valori ( $colonna) deve avere come elementi delle altre matrici con nome mio e tuo
  NB. Le variabili possono essere riusate in posti differenti della pagina. Occorre tenere presente che se sono variabili a diversi valori inserite in repeat diverse, i valori verranno ripetuti. (vedi esempio allegato)  
Struttura della pagina PHP

 


 

  La pagina PHP, per quello che ci riguarda, deve inziare con:
   
require_once("class_template.php");
 
  ovviamente indicando il corretto percorso per ritrovare il file.
  es.:
require_once("/include/class_template.php"); )
 
  Subito dopo dobbiamo iniziallizzare la classe:
    $CLASS["template"]= new template();
$CLASS["template"]->set_rootdir(".") ;
 
  A questo punto, con i nostri algoritmi vari, assegnamo i valori alle varialibi...
  es.: $var1=array("Inizio Pagina","2a parte");
$colonna["mio"]=array("aaa","bbb");
array_push($colonna["mio"],'',"ddd");
$colonna["tuo"]=array("111","222","333");
 
  A questo punto passiamo le variabili alla classe:
    $CLASS["template"]->register_vars("test",array(
"colonna" => $colonna ));
$CLASS["template"]->register_vars("test",array(
"var1" => $var1 ));
 
  dove:

test = nome del file che contiene il template

 
  Ovviamente si possono assegnare i valori alle variabili mentre le si passa alla classe.
   

$CLASS["template"]->register_vars("test",array(
"user" => ("Mariella")));
$CLASS["template"]->register_vars("test",array(
"tre" => array("una bella scritta"," piacevole")));
$CLASS["template"]->register_vars("test",array(
"vino" => array("Dolcetto","Arneis","Moscato")));

 
  Siamo pronti ad eseguire la prima variazione al template. Consiste nel trasformare le zone repeat, assegnando il valore alle variabili.
    $CLASS["template"]->set_templatefiles(array(
"test" => "test.html" ));
 
 

NB. Ovviamente test potrebbe essere qualsiasi altro termine. Ma così facendo lo si associa facilmente al nome del file cui si fa riferimento (test.html.)

E quindi l'ultimo passo.

    $output = $CLASS["template"]->do_parse("test");  
  Tutto pronto. non resta che mandarlo all'utente:
    eval("echo \"$output\";");