6. Annexe▲
6.1. Structure de la classe (code PHP)▲
template.php
Sélectionnez
<?php
class Template {
    private $page;                // Code source HTML de la page - fichier.tpl
    private $infoTpl = array();   // Tableau des constantes => données
    /**
     * Vérifie l'existence du fichier
     */    
    function __construct($file) {
    }
    
    /**
     * Enregistre les constantes dans $infoTpl
     * infoTpl[.][][constant] = data;
     */
    function simpleVar($varArray = array()) {
    }
    
    /**
     * Enregistre les constantes dans $infoTpl
     * infoTpl[type][lastID][constant] = data;
     *
     * - type    = nom du bloc contenant la boucle
     * - lastID    = ID du tableau où se trouve le script
     */
    function loopVar($type, $varArray = array()) {
    }    
    
    /**
     * Remplace les constantes par leurs données
     */
    function constantReplace() {
    }
    
    /**
     * Retourne le code HTML parser
     */
    function parse() {
    }
}
?>6.2. Structure avancée de la classe▲
Explication du schéma :
- __construct() se lance automatiquement à l'instanciation de la classe;
- Teste si le fichier passé en argument existe et est ouvert en lecture;
- Mise du code source HTML du fichier template dans $page;
- Récupération des constantes/données de test.php;
- Traitement avec simpleVar() ou loopVar() selon les besoins;
- Mise des constantes/données traitées dans $infoTpl;
- Parse le code avec parse();
- parse() fait appel à constantReplace();
- constantReplace() remplace les constantes par leurs données.
6.3. Structure du tableau $InfoTpl▲
Le tableau $infoTpl sera de cette forme : Note : le texte entre acolades représente le nom des variables que j'utilise dans mon code
$infoTpl
Sélectionnez
{$infoTpl}
Array
(
    {$type}
    [.] => Array
        (
           {$info[$i]}
            [0] => Array
                (
                    {$constant    => $data}
                    [WELCOME_MSG] => Bonjour !!
                )
            [1] => Array
                (
                    [GOODBYE] => Aurevoir !!
                )
        )
    [country] => Array
        (
            [0] => Array
                (
                    [ID] => BE
                    [COUNTRY] => Belgique
                )
            [1] => Array
                (
                    [ID] => FR
                    [COUNTRY] => France
                )
            [2] => Array
                (
                    [ID] => ITA
                    [COUNTRY] => Italie
                )
        )
)


