Avevo intenzione di ristrutturare il mio vecchio e disordinato sito fatto 3-4 mesi.
Ma quando ci ho messo le mani, nn capivo più niente perchè era tutto disordinato: codice di qua, stringhe di là, html al centro, alla fine, variabili alla cavolo... beh... La situazione era veramente disastrosa.
Fino a quando non decido di imparare finalmente a programmare con i template.
Mi informo un pò: leggo l'articolo su freephp.html.it e cerco un pò nel forum i vecchi 3d.
Dopo problemi iniziali, finalmente mi illumino: è proprio facile
Il fatto è che l'articolo del sommo GM andava perfettamente per dei template statici.
Ma se io avessi per esempio voluto creare una pagina con un sistema di news?
dove c'è:[list=1][*]una prima parte statica[*]una seconda parte dinamica (l'elenco delle news)[*]una terza parte statica[/list=1]
Beh... Mi sono chiuso dentro il mio laboratorio delle ricerche e ne sono uscito vincitore!
Finalmente avevo la soluzione in mano!
Vi provo a spiegare il tutto! (Ma chiedo venia, perchè è anche la mia prima pillola)
Allora, sappiamo che con il metodo dei template possiamo dividere completamente il codice HTML dal codice PHP su due file diversi.
Qundi creiamo due nuovi file:
index.php e index.tpl*
(*) dove per .tpl ci sta qualsiasi estensione! tanto il formato è sempre testo
Fin qui ci siete?
Bene, iniziamo a buttare giù due righe per il file index.tpl:
Beh.. è tutto codice html eccezion fatta per due o tre simboli che con l'html non centrano proprio 'na mazzaCodice PHP:<html>
<head>
<title>{title}</title>
</head>
<body>
Questa è una prova di news!
Fine della prima parte!
<hr-tpl>
News numero {news_id} - {news_title}
<hr-tpl>
Questa è la fine della pagina!
by {autore}!
</body>
</html>
Vi spiego la loro utilità:
{stringa} <-- queste sono stringhe che daranno posto alle variabili una volta elaborato con il php
<hr-tpl> <-- questa, come da nome, è un interruzione di template
Credo che stiate capendo ciò che voglio fare, vero?
Ma continuiamo!
Buttiamo giù il codice php da mettere nel file index.php (prima parte):
Spiegiamo questa prima parte:Codice PHP:// 1- iniziamo con il prendere il testo dal file template con il fido implode()
$input=implode("",file("index.tpl"));
// 2- dividiamo in 3 parti con il sommo explode()
$temp=explode("<hr-tpl>",$input);
// 3- attribuiamo questo array a diverse variabili
$tpl_alto=$temp["0"];
$tpl_news_temp=$temp["1"];
$tpl_basso=$temp["2"];
nel primo passo abbiamo imploso in una variabile tutto il contenuto del file index.tpl;
nel secondo passo abbiamo invece diviso in tre parti (visto che le interruzioni di template <hr-tpl> erano due) il file;
nel terzo passo abbiamo attribuito queste tre parti a 3 diverse (la prima statica, la seconda dinamica e la terza statica) variabili.
Buttiamo giù il codice php da mettere nel file index.php (seconda parte):
Spieghiamo la seconda parte:Codice PHP:// Settiamo la prima parte della pagina
$title="Creazione di template dinamici! - by eX-Arus";
$tpl_alto=str_replace("{title}", $title, $tpl_alto);
// Settiamo la seconda parte della pagina, la parte dinamica
$tpl_news="";
/*
eventuale query al db mysql
$action=mysql_query("SELECT * FROM db")
*/
while ($array=mysql_fetch_array($action))
{
//attribuiamo alla varibile news la seconda parte di testo
$news=$tpl_news_temp;
//trasformiamo gli array
$news_id=$array["news_id"]
$news_titolo=$array["news_titolo"]
//cambiamo le stringhe del template con le varibili
$news=str_replace("{news_id}", $news_id, $news);
$news=str_replace("{news_title}", $news_title, $news);
//aggiungiamo questa parte di testo alla variabile finale
$tpl_news.=$news;
}
// Settiamo la terza parte della pagina
$autore="eX-Arus";
$tpl_basso=str_replace("{autore}", $autore, $tpl_basso);
ho semplicemente cambiato le stringhe del template ({stringa}) con delle varbili grazie alla funzione str_replace()
Buttiamo giù il codice php da mettere nel file index.php (ultima parte):
Ho semplicemente creato una nuova variabile e ho aggiunto in ordine i valori delle 3 parti.Codice PHP:// Output dei dati della pagina. Operazione finale
$output="";
$output.=$tpl_alto;
$output.=$tpl_news;
$output.=$tpl_basso;
echo $output;
----------------------------------------------------------------------
Riepilogo di tutto il codice php:
Ok, ho finito, spero di non avervi annoiato e di aver spiegato una cosa nuova ed interessante ^_^Codice PHP:// iniziamo con il prendere il testo dal file template con il fido implode()
$input=implode("",file("index.tpl"));
// dividiamo in 3 parti con il sommo explode()
$temp=explode("<hr-tpl>",$input);
// attribuiamo questo array a diverse variabili
$tpl_alto=$temp["0"];
$tpl_news_temp=$temp["1"];
$tpl_basso=$temp["2"];
// Settiamo la prima parte della pagina
$title="Creazione di template dinamici! - by eX-Arus";
$tpl_alto=str_replace("{title}", $title, $tpl_alto);
// Settiamo la seconda parte della pagina, la parte dinamica
$tpl_news="";
/*
eventuale query al db mysql
$action=mysql_query("SELECT * FROM db")
*/
while ($array=mysql_fetch_array($action))
{
//attribuiamo alla varibile news la seconda parte di testo
$news=$tpl_news_temp;
//trasformiamo gli array
$news_id=$array["news_id"]
$news_titolo=$array["news_titolo"]
//cambiamo le stringhe del template con le varibili
$news=str_replace("{news_id}", $news_id, $news);
$news=str_replace("{news_title}", $news_title, $news);
//aggiungiamo questa parte di testo alla variabile finale
$tpl_news.=$news;
}
// Settiamo la terza parte della pagina
$autore="eX-Arus";
$tpl_basso=str_replace("{autore}", $autore, $tpl_basso);
// Output dei dati della pagina. Operazione finale
$output="";
$output.=$tpl_alto;
$output.=$tpl_news;
$output.=$tpl_basso;
echo $output;
Grazie a tutti per la lettura, e se avete consiglio siete ben accetti!
Ciao


Rispondi quotando