Bonjour, j'ai écris un petit code permettant de gérer des templates en php4 avec des objets. Les templates sont correctement placés mais je rencontre des soucis pour intégrer des variables à l'intérieur de ces templates. J'ai testé deux méthodes:

-la première:

Code class_tpl.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class template
{
	var $name;
	var $folder;
	var $tpl;
 
	function template ($folder)
	{
		$this->name = '';
		$this->folder = $folder."/tpl/";
		$this->tpl = '';
	}
 
	function get ($tplname)
	{
		if (!empty ($tplname))	$this->name = $tplname.'.tpl';
		$this->tpl = $this->folder.$this->name;
		if (file_exists ($this->tpl))
		{
			$temp = fopen ($this->tpl, "r");
			$this->tpl = fread ($temp, filesize ($this->tpl));
			print $this->tpl;
		}
		else echo 'le template '.$this->tpl.' n\' existe pas!';
	}
};

Code index.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
include 'include/config.php';
 
$pagetitle = 'index';
 
$tpl->get ('header');

Code header.tpl : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<head>
		<title><?php echo $pagetitle ?></title>
	</head>

Ce qui donne pour résultat dans le titre de la page web: "<?php echo $pagetitle ?>"

-deuxième méthode: fonction include à la place de fopen:

Code class_tpl.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class template
{
	var $name;
	var $folder;
	var $tpl;
 
	function template ($folder)
	{
		$this->name = '';
		$this->folder = $folder."/tpl/";
		$this->tpl = '';
	}
 
	function get ($tplname)
	{
		if (!empty ($tplname))	$this->name = $tplname.'.tpl';
		$this->tpl = $this->folder.$this->name;
		if (file_exists ($this->tpl))
		{
			include $this->tpl;
		}
		else echo 'le template '.$this->tpl.' n\' existe pas!';
	}
};

Ce qui donne pour résultat dans le titre de la page web: "notice: undefined variable..."

Auriez vous une idée?