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