Sto proprio scrivendo una serie di oggetti per fare quello che vuoi. Ho scelto la strada seguente.
- Ho un file html che contiene il disegno della pagina.
- Ho un file txt per le costanti.
- Ho un file php che contiene solo la parte php.
La parte che va rimpiazzata sta tra i commenti <!-- mla start xxxx --> e <!-- mla end xxxx --> xxxx è un label. Le variabili del Template hanno la forma #valx con x=un numero da 0 a n.
Le costanti hanno la forma seguente :COSTANTE:
Parte HTML
codice HTML:
<table>
<tr bgcolor="blue">
<td>:CST_ID:</td><td>:CST_TITLE:</td><td></td><td></td>
</tr>
<!-- mla start RIGA -->
<tr bgcolor="#val0">
<td>#val1</td>
<td>#val2</td>
<form action=":FILE_UPDATE:?id=#val1" method="post">
<td>
<input type="submit" name="bouton" value=":CST_UPDATE:">
</td>
</form>
<form action=":FILE_DELETE:?id=#val1" method="post">
<td>
<input type="submit" name="bouton" value=":CST_DELETE:">
</td>
</form>
</tr>
<!-- mla end RIGA-->
</Table>
Il file delle costanti.
codice HTML:
:CST_ID:|Identificativo
:CST_TITLE:|Titolo
:CST_NBRECORDS:|Numero di record
:CST_PAGE:|Numero di pagina
Per la parte php.
Codice PHP:
...
$Toto = new mlaTemplate;
// carico il codice HTML
$Toto->load_HTML_file("mapage2.html");
// carico le costanti
$Toto->load_const_file("mapage2.cst");
// posso aggiungere delle costanti
$Toto->add_const(':THIS_PAGE:',basename($_SERVER["PHP_SELF"]));
$Toto->add_const(':FILE_UPDATE:',"aggiornamento.php");
$Toto->add_const(':CST_UPDATE:',"Aggiornare");
$Toto->add_const(':FILE_DELETE:',"cancellazione.php");
$Toto->add_const(':CST_DELETE:',"Cancellare");
...
//----- Binding delle righe
$color = "";
$start = ($page - 1) * $nb_rec_page;
$query = "select iddoc, doctitle, idcrypt from sit_doc order by iddoc limit $start,$nb_rec_page";
$resultat = mysql_query($query);
while (list($iddoc, $doctitle, $idcrypt) = mysql_fetch_array($resultat)) {
$color = $color == "grey" ? "green" : "grey";
$Toto->bind_HTML('RIGA',$color,$iddoc,$doctitle);
} // while (list($iddoc, $doctitle, $idcrypt) = mysql_fetch_array($resultat)
//====================================================
// Creazione del contenuto HTML
print $Toto->contents();
//====================================================
bind_HTML('RIGA',$color,$iddoc,$doctitle);
rimpiazza #val0 con $color, #val1 con $iddoc e #val2 con $doctitle per tutta la parte racchiusa tra <!-- mla start RIGA --> e <!-- mla end RIGA-->
Parte del codice generato :
codice HTML:
<table>
<tr bgcolor="blue">
<td>Identificativo
</td><td>Titolo
</td><td></td><td></td>
</tr>
<tr bgcolor="grey">
<td>2</td>
<td>Sharp PC 1500</td>
<form action="aggiornamento.php?id=2" method="post">
<td>
<input type="submit" name="bouton" value="Aggiornare">
</td>
</form>
<form action="cancellazione.php?id=2" method="post">
<td>
<input type="submit" name="bouton" value="Cancellare">
</td>
</form>
</tr>
<tr bgcolor="green">
<td>3</td>
<td>000 - Haut de page</td>
<form action="aggiornamento.php?id=3" method="post">
<td>
<input type="submit" name="bouton" value="Aggiornare">
</td>
</form>
<form action="cancellazione.php?id=3" method="post">
<td>
<input type="submit" name="bouton" value="Cancellare">
</td>
</form>
</tr>
....
Confronto tra prima e dopo :
codice HTML:
Prima :
<!-- mla start RIGA -->
<tr bgcolor="#val0">
<td>#val1</td>
<td>#val2</td>
<form action=":FILE_UPDATE:?id=#val1" method="post">
<td>
<input type="submit" name="bouton" value=":CST_UPDATE:">
</td>
</form>
<form action=":FILE_DELETE:?id=#val1" method="post">
<td>
<input type="submit" name="bouton" value=":CST_DELETE:">
</td>
</form>
</tr>
<!-- mla end RIGA-->
Dopo :
<tr bgcolor="grey">
<td>2</td>
<td>Sharp PC 1500</td>
<form action="aggiornamento.php?id=2" method="post">
<td>
<input type="submit" name="bouton" value="Aggiornare">
</td>
</form>
<form action="cancellazione.php?id=2" method="post">
<td>
<input type="submit" name="bouton" value="Cancellare">
</td>
</form>
</tr>
Immagine :
exemple HTML.jpg