Class template

Répondre
eljam
le 23/02/2005 à 10:38
eljam
Voici une classe template que j'ai fait toute simple.
Template_class.php:

  1. <?php class template
  2. {

  3. function template ($chemin){

  4. $modele = @fopen ($chemin, 'r');

  5. $this->content = @fread ($modele, @filesize ($chemin));

  6. @fclose ($modele);


  7. }


  8. function assign ($field, $value){

  9. $this->fields[$field] = $value;

  10. }



  11. function parse (){

  12. foreach ($this->fields as $key => $value){

  13. $result = ereg_replace ("{".$key."}", $value,$this->content);

  14. $this->content = $result;
  15. }
  16. }


  17. function display (){

  18. echo $this->content;
  19. }
  20. }?>

Le problème est que je ne peux qu'afficher des variables, et j'aimerai pouvoir prendre le code de tout une page pour l'assigné à une valeur.

index.php:

  1. <?php
  2. require ("template_class.php");
  3. $test="bonjour";
  4. // Création d'une nouvelle instance de la classe et définition d'un gabarit
  5. $tpl = new template ("template.php");

  6. // Initialisation des variables du gabarit
  7. $tpl->assign ("TITRE", "Test de notre classe.");
  8. $tpl->assign ("TITRETEXTE", "Mon article");
  9. $tpl->assign ("ARTICLE", "$test");

  10. // Analyse du template
  11. $tpl->parse ();

  12. // Affichage du résultat
  13. $tpl->display();
  14. ?>


Voici le code de template.php:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>{TITRE}</title>
  5. </head>
  6. <body>
  7. <table border="1">
  8. <tr>
  9. <td>{TITRETEXTE}</td>
  10. </tr>
  11. <tr>
  12. <td>{ARTICLE}</td>
  13. <tr>
  14. </table>
  15. </body>
  16. </html>
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours