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( |
|||
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\";"); | |||