Subversion Repositories Sites.tela-botanica.org

Rev

Rev 609 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
376 jpm 1
<?php
2
// Auteur d'origine : Brian Lozier
3
// Source : http://www.massassi.com/php/articles/template_engines/
4
 
5
class SquelettePhp {
6
	private $vars; // Contient toutes les variables à insérer dans le squelette
7
 
8
	/**
9
	* Constructeur
10
	*
11
	* @param $fichier string le nom du fichier de template à charger.
12
	*/
13
	public function __construct($fichier_tpl = null)
14
	{
15
		$this->fichier = $fichier_tpl;
16
	}
17
 
18
	/**
19
	* Ajout une variable pour le squelette.
20
	*/
21
	public function set($nom, $valeur = null)
22
	{
23
		if (is_null($valeur) && is_array($nom)) {
24
			$this->vars = $nom;
25
		} else if ($valeur instanceof SquelettePhp) {
26
			$this->vars[$nom] = $valeur->analyser();
27
		} else {
28
			$this->vars[$nom] = $valeur;
29
		}
30
	}
31
 
32
	/**
33
	* Ouvre, parse, and retourne le squelette.
34
	*
35
	* @param $fichier string le nom du fichier squelette.
36
	*/
37
	public function analyser($fichier = null)
38
	{
39
		if(!$fichier) $fichier = $this->fichier;
40
		extract($this->vars);          // Extrait les variables et les ajoutes à l'espace de noms local
41
		ob_start();                    // Démarre le buffer
42
		include($fichier);             // Inclusion du fichier
43
		$contenu = ob_get_contents();  // Récupérer le  contenu du buffer
44
		ob_end_clean();                // Arrête et détruit le buffer
45
		return $contenu;               // Retourne le contenu
46
	}
47
}
48
?>