Subversion Repositories Applications.wikini

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
63 aurelien 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
?>