
le 23/02/2005 à 10:38
eljam
Voici une classe template que j'ai fait toute simple.
Template_class.php:
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:
Voici le code de template.php:
Template_class.php:
- <?php class template
- {
- function template ($chemin){
- $modele = @fopen ($chemin, 'r');
- $this->content = @fread ($modele, @filesize ($chemin));
- @fclose ($modele);
- }
- function assign ($field, $value){
- $this->fields[$field] = $value;
- }
- function parse (){
- foreach ($this->fields as $key => $value){
- $result = ereg_replace ("{".$key."}", $value,$this->content);
- $this->content = $result;
- }
- }
- function display (){
- echo $this->content;
- }
- }?>
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:
- <?php
- require ("template_class.php");
- $test="bonjour";
- // Création d'une nouvelle instance de la classe et définition d'un gabarit
- $tpl = new template ("template.php");
- // Initialisation des variables du gabarit
- $tpl->assign ("TITRE", "Test de notre classe.");
- $tpl->assign ("TITRETEXTE", "Mon article");
- $tpl->assign ("ARTICLE", "$test");
- // Analyse du template
- $tpl->parse ();
- // Affichage du résultat
- $tpl->display();
- ?>
Voici le code de template.php:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>{TITRE}</title>
- </head>
- <body>
- <table border="1">
- <tr>
- <td>{TITRETEXTE}</td>
- </tr>
- <tr>
- <td>{ARTICLE}</td>
- <tr>
- </table>
- </body>
- </html>