Réponse AJAX Atelier PHP - les templates

Atelier PHP
Utilisation des templates avec PHPLib.


Information sur... les templates.

Les templates sont utiles dans les pages web. Ils servent à séparer la présentation (= balises HTML) des données (=informations lues dans les bases de données). Avantage : un développeur peut améliorer le code PHP d'une page Web, pendant qu'un designer en améliore la présentation. Ils travaillent sur deux fichiers différents et ne se perturbent pas.

On a donc deux fichiers :

  • le template, qui contient la présentation sous forme de balises HTML et de "variables". Extensions : quelconque, de préférence .HTML (pour faciliter son édition).
  • la page PHP, qui fait la fusion entre les données (contenues en général dans une BDD) et la présentation contenue dans le template.

Pour utiliser les templates il existe plusieurs librairies : FastTemplate, PHPLib (que nous allons utiliser ici)...


1
Installation et mise en oeuvre minimaliste du template
(sans base de données).

Dès lors, vous pourriez librement améliorer la présentation dans la page bonjour.template.php, sans risquer de perturber le code PHP (car il est séparé dans une autre page).

Explications sur... La classe template.

  • template est une classe. C'est pourquoi on crée l'objet $t qui est une instance de cette classe.
  • lorsqu'on crée $t, "." représente le chemin d'accès depuis la page php vers les template ("." signifie : dans le même répertoire).
  • set_file indique le fichier template à utiliser.
  • set_var sert à remplacer les balises contenues dans le template ({NOM}, {PRENOM}, {TITRE}, etc.) par une vrai valeur. Dans son navigateur, l'internaute verra donc la vraie valeur et non pas la balise.
  • parse() traite le template (elle effectue réellement les remplacements indiqués par set_var), mais n'affiche toujours rien dans le navigateur.
  • p() envoie le résultat au navigateur pour affichage.
  • Eventuellement, parse() et p() peuvent être fusionnées en une seule méthode pparse().

2
Un exemple en situation réelle : template pour afficher
les petites annonces sur cours.sebastien-pastore.com.

Voici une utilisation réellement pratique des templates : l'intégration au site des petites annonces.

3
Simplification de l'exemple précédent
grâce au cumul des résultats : $t -> parse (..., ..., true) ;

Au lieu de parser chaque annonce et d'envoyer le résultat annonce par annonce au navigateur, on peut cumuler les résultats dans page_result et appeler une seule fois la méthode p() pour afficher les résultats d'un coup.

Cela se fait grâce au 3ème paramètre de la méthode parse : $t->parse (..., ..., true) ;

4
Ajout d'un template général
pour cette même page.

On va maintenant créer un template pour la page entière. Le premier template, déjà créé, n'est qu'une sous-partie, qui représente la liste des petites annonces. Le deuxième template représente la page. La liste des annonces sera insérée à la place de la variable {LISTE}.

5
Structure définitive :
simplification du cas précédent grâce à l'utilisation des "blocks".

Explications...

Les "blocks" vont nous permettre de fusionner les deux fichiers templates (page.template.html et annonce.template.html) en un seul. On peut effectivement préciser, pour un template, quelle est la partie unique et quelle est la partie qui se répète pour chaque annonce (c'est le "block").

Au niveau du template, la partie qui doit se répéter doit être entourée de commentaires HTML (les commentaires HTML ne sont pas analysés par les navigateurs, mais ils sont très importants pour notre librairie template.inc) :

... (début de la partie unique)
<!-- BEGIN nom_du_block -->
...
(partie qui se répète)
<!-- END nom_du_block -->
...
(fin de la partie unique)

6
Bilan.

Sébastien PASTORE.