eljam

  • Site web
  • Nombre de sujets
    4
  • Nombre de messages
    18
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers sujets sur les forums

eljam
le 23/02/2005 à 10:38
Class template
Voici une classe template que j'ai fait toute simple.
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>
LoadingChargement en cours