Fork me on GitHub

Thèmes, templates et Smarty

200401
Juillet
  thecat Lettres d'informations 10397



 

Thèmes, templates et Smarty...

Ces différents termes ne sont pas toujours très explicites pour l’utilisateur de Xoops, et la confusion entre thème et template est fréquente. Et s’il est souvent question de ‘variables Smarty’, nombreux sont ceux qui ignorent ce qu’est réellement Smarty. Essayons d’y voir plus clair, sans trop rentrer dans les détails techniques.

Les templates
Le Php n’est pas particulièrement adapté pour gérer l’affichage, et ne le fait qu’à partir d’instructions echo de code Html. Si vous avez cherché à modifier l’affichage d’un module n’utilisant pas les templates, vous avez pu vous rendre compte de la difficulté.
Les templates ont donc été créés pour permettre la séparation entre le traitement de l’information et son affichage. A chacun son rôle :
- au Php le traitement : interfaçage avec la base de données, calculs, gestion des cookies et sessions, traitement des chaines de caractères, etc.
- au html, associé aux feuilles de style, la présentation des données dans des tableaux, avec couleurs et images.
Les templates sont donc des fichiers Html particuliers, dans lesquels on trouvera :
- des variables (<{$story.title}>, <{$story.text}> p.ex.) qui seront remplacées, au moment de l’appel de la page, par le contenu que leur aura assigné le script Php
- diverses instructions (<{if …}>, <{include file=’…}>) permettant de conditionner l’affichage de certaines parties au résultat d’un test, d’inclure un autre template, ou encore de balayer un tableau de données transmis par le script Php.
Il devient donc très facile de modifier l’apparence d’une page avec une éditeur Html, sans avoir à plonger dans le code Php.

Le rôle de Smarty
Puisque nous avons d’un coté le Php qui réalise les calculs, et de l’autre les templates pour l’afichage, il faut naturellement une application qui se charge de la liaison entre les deux.
Xoops fait appel pour cela à ce que l’on appelle un moteur de template : il en existe de nombreux, mais le choix de la team de développement s’est porté sur Smarty.
Smarty est un donc une application indépendante de xoops, ce dernier en assurant le paramétrage et l’interface utilisateur, ce qui rend ainsi l’utilisation de Smarty relativement transparente.
L’une des particularité de Smarty est d’intégrer un compilateur de templates, qui seront enregistrés par Xoops dans la base de données. C’est la raison pour laquelle, après toute modification de template, il faut executer une mise à jour du module ou du système pour que ces modifications soient prises en compte.

Et le cache
Xoops dispose d’un système de cache, ou plus exactement utilise le système de cache de Smarty.
L’un des inconvénients de l’utilisation d’un moteur de templates est qu’il a besoin lui aussi de ressources serveur pour fonctionner. Le temps de traitement d’une page utilisant les templates sera donc plus long qu’un affichage direct par le script Php.
Pour compenser cet inconvénient, les développeurs de Smarty ont donc intégré un système de mise en cache : certaines pages, ou portions de pages, ne sont pas générées à chaque appel du navigateur, mais stockées directement en Html, prêtes à l’emploi, dans un répertoire spécifique (templates_c).
Là encore, même si le paramètrage du cache et l’interfacage avec l’utilisateur pour les modules ou blocs à mettre en cache est réalisé par Xoops, ce système de cache est totalement géré par Smarty.

Thème
Maintenant que l’on a défini ce qu’est un template, il ne reste plus qu’à expliquer ce qu’est le (jeu de) thème. Il s’agit d’un ensemble de quelques fichiers, rassemblés dans un sous-répertoire du dossier themes, qui vont vous permettre de définir complètement l’aspect de votre site, et qui est composé de :
* un jeu de 3 feuilles de syle (1 par type de navigateur), qui définissent les couleurs, polices, background, etc du site
* un (ou plusieurs) template(s) : un seul en principe est nécessaire, theme.html. C’est le gabarit de base pour tout votre site qui va définir en-tête, pied de page, position des blocs. Tous les templates des modules ne feront qu’être inclus dans ce template ‘parent’.
Il est fréquent de trouver plusieurs templates : plutôt que d’en faire un seul, il est plus facile de créer des templates pour chacun des 5 blocs (gauche, droit, centre gauche, centre centre et centre droit) qui seront inclus dans le template theme.html.
* des images, plus ou moins nombreuses, utilisées par le(s) template(s) ou les feuilles de style
* éventuellement du javascript pour une barre de menu dynamique p.ex.

Et si vous souhaiter en savoir plus sur Smarty, une documentation très complète, et en français, est disponible sur le site offficiel de
Smarty


TheCat

  

Note: 10.00 (1 vote) - Noter cet article -

Partager Twitter Partagez cette article sur GG+
Format imprimable Envoyer cet article à un ami
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

35 Personne(s) en ligne (1 Personne(s) connectée(s) sur Articles) | Utilisateur(s): 0 | Invité(s): 35 | Plus ...