Espace membres

Bonjour Anonyme

Inscription

Email :
Mot de passe :

Mot de passe oublié ?

Nos scripts

MySpeach

MySpeach est un chat php sans base de donnée, rapide, léger et facile à prendre en main. DEMO

MyPHPUpload

MyPHPUpload est un script d'upload sécurisé écrit en PHP. DEMO

GrapAgenda

Agenda PHP et MySQL avec comptes utilisateurs et administration. DEMO

Livre PHP

Le moteur de template PHP Hyla TPL

Cours / tutoriel écrit le 13-07-2010 par sky
Comment utiliser un moteur de template en PHP : Hyla Tpl

Il existe plusieurs solutions de moteur de template en PHP.
A chaque moteurs ses avantages et inconvénients ...
On va donc voir le moteur de template tout récent qui porte le nom de Hyla TPL

Pour télécharger le moteur de template : http://tpl.hyla-project.org/fr/telecharger

Le moteur de template PHP Hyla Tpl est en une seul class PHP pour un poids de 22ko, affiche de superbe performances et est simple à mettre en place.

Principe
Le principe d'un moteur de template PHP est de séparer le contenu du langage de programmation et de simplifier le travail en web design.

Exemples
<?php
include('./hyla_tpl.class.php');

// Création de l'objet Hyla_Tpl
// Le paramètre est le chemin du répertoire ou vont être stocker les fichiers template
// Pas de slash de fin (/)
$Tpl = new Hyla_Tpl('.');

// Import le fichier template de l'index
$Tpl->importFile('index.tpl');

// setVar permet d'assigner une valeur à un mot clef
$Tpl->setVar('prenom', 'Pierre');
$Tpl->setVar('nom', 'Deloin');

// Pour afficher le résultat :
echo $Tpl->render();
?>

Le fichier index.tpl :
<h1>Page index</h1>
<p>Bonjour {$nom} {$prenom}</p>



Nous avons donc dors et déjà un système de template PHP qui fonctionne.


Les listes de données
Allons un peux plus loin en récupérant des informations d'une base de donnée :
<?php
// Conexion MySQL

// Include du moteur de template Hyla
include('./hyla_tpl.class.php');

// Création de l'objet Hyla_Tpl
// Le paramètre est le chemin du répertoire ou vont être stocker les fichiers template
// Pas de slash de fin (/)
$Tpl = new Hyla_Tpl('.');

// Import le fichier template de l'index
$Tpl->importFile('actualites.tpl');


$requete = "SELECT id,titre,date FROM Actualites";
$sql = mysql_query($requete);
$nbrNews = mysql_num_rows($sql);

while($row = mysql_fetch_assoc($sql))
{
    $Tpl->setVar('actu', $row);
    $Tpl->render('actualites');
}

// Le nombre d'élément retournés :
$Tpl->setVar('nbr_news', $nbrNews);

// Pour afficher le résultat :
echo $Tpl->render();
?>

Le fichier actualites.tpl :
<h1>Actualités</h1>
<p>
    Nombre total d'actualités : {$nbr_news}
</p>

<table width="100%">
    <tr>
        <th>ID</th>
        <th>Titre</th>
        <th>Date</th>
    </tr>
    <!-- BEGIN actualites -->
    <tr>
        <td>{$actu.id}</td>
        <td>{$actu.titre}</td>
        <td>{$actu.date}</td>
    </tr>
    <!-- END actualites -->
</table>


Pour finir, un truc sympa pour alterner une couleur de fond :
<table width="100%">
<!-- BEGIN ligne -->
    <tr style="background:{!cycle:'#dedede','#f0f0f0'}">
        <td>{$message}</td>
    </tr>
<!-- END ligne -->
</table>


Il existe d'autres moteurs de template comme smarty, phplib, vtemplate ou phptal...
Vous pouvez retrouver un comparatif entre divers moteurs de template ici : http://g-rossolini.developpez.com/comparatifs/php/templates/?page=conclusion#LVII-A-2

Commentaires

Benji59226 le 25-02-2011

trop top

hugo le 21-07-2010

Hey,

merci pour l'article ;)

Pseudo
Email
Commentaire

Merci d'écrire le code ici :