Fiche
Niveau de difficulté : | De bonnes connaissances. |
---|---|
Recommandations : | n/c. |
A lire aussi : | Aide à la création d'un thème |
Inspirez-vous aussi de ce qui existe déjà.
Cette page est le début de réponse trop longtemps différée au besoin de formalisation du système de template de PWG.
Cette formalisation favorisera une compréhension partagée du fonctionnement du template et donc facilitera les discussions autour de ses évolutions.
Cette page doit déboucher, lorsqu'elle sera terminée, sur des spécifications de la structure du template à implémenter dans les futures versions de PWG. Les éléments de roadmap correspondants seront indiqués dans la Feuille de route.
PWG 1.3 disposait déjà d'un système de template qui permettait de séparer le contenu de la mise en forme. En revanche, c'était avant la généralisation des feuilles de style (CSS), l'époque ou la présentation des sites web était conçue sur la base de tableaux imbriqués. L'alignement était toujours parfait, mais les templates difficilement lisibles et peu évolutifs. Même si la disposition ne variait pratiquement pas, on disposait d'une gamme de template avec des visuels variés et qui, pour certains, avaient «de la gueule».
PWG 1.4 est sorti avec de nouvelles fonctionnalités, et un nouveau template allégé, mais faisant encore largement usage de tableaux. Le gros boulot d'adaptation des templates existants en 1.3 n'a jamais été fait, d'autant plus que se profilait une nouvelle rupture pour la version 1.5 avec un abandon des tableaux et un usage généralisé des feuilles de style.
Le moteur de template est un ensemble de scripts PHP qui va «compiler» les fichiers templates (*.tpl) afin de générer les pages HTML affichables par le navigateur de l'utilisateur.
Cela correspond notamment à :
Les templates sont les éléments qui définissent l'interface graphique de PWG et son comportement. C'est grâce à eux que quelque-chose peut s'afficher.
Ils sont actuellement (PWG 1.6.x) constitués de trois types de fichiers :
Les thèmes sont la partie la plus visible de l'interface de PWG. Ce sont eux qui définissent la dernière touche visuelle : couleurs, icônes, boutons, bordures, etc.
Il peut y avoir plusieurs thèmes pour un même template, en revanche il n'est pas prévu qu'un même thème soit partagé par plusieurs templates. C'est possible si les templates sont techniquement très proches, mais aucun mécanisme général n'est prévu pour traiter cela.
Techniquement, ils sont constitués de feuilles de style (fichiers *.css) et d'images (fichiers *.png).
Grâce à la puissance des règles CSS, il est possible de modifier le comportement des objets constituant la page, et en particulier de cacher ou révéler certains objets ou bien encore de modifier leur positionnement.
A titre d'exemple, il existe un thème (yoga/hk-3) pour le template yoga qui transforme le menu de gauche de PWG en barre horizontale de menus déroulants. Ce n'est pas l'objectif premier des thèmes d'aller aussi loin dans la modification du comportement de l'interface, mais puisque c'est possible, pourquoi s'en priver ?
Afin de maintenir la cohérence des en-têtes et pieds-de-page dans PWG, le code PHP responsable de la génération d'une page ne s'occupe que du contenu de la page et fait appel à du code générique pour la création de l'en-tête (section <head>
et ouverture du <body>
et du premier conteneur, messages éventuels et bannière), ainsi que du pied-de-page (message de copyright, fermeture du <body>
et du <html>
)
Pour plus de détail, on se reportera aux spécifications détaillées :