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à.

Présentation - Affichage

Objet

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.

Rapide historique

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.

Présentation générale

Moteur de template

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 à :

  • la substitution de tous les messages dans la langue choisie
  • l'évaluation des variables définies dans le template, dans la configuration de PWG ou de l'utilisateur, ou à l'exécution par le script PHP appelant.
  • l'inclusion et la compilation de tous les fichiers templates participant à la constitution de la page.

Templates

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 :

  • des fichiers template (*.tpl) qui fourniront, après «compilation» par le moteur de template, les pages HTML
  • des feuilles de style CSS qui définissent une partie de l'apparence et du comportement par défaut des objets des pages web pour ne pas avoir à tout réécrire dans les thèmes
  • un jeu d'icônes par défaut au format PNG (un thème peut définir son propre jeu d'icônes)

Thèmes

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 ?

Orientations

Principes

Contraintes

Objectifs

Solutions

En-tête et Pied-de-page

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 :

 
Haut de page
projet/developpement/presentation.txt · Dernière modification: 2010/02/22 15:06 par gotcha
 
 
github twitter facebook google+ newsletter Faire un don Piwigo.org © 2002-2017 · Contact