Architecture des thèmes
Cette page fournit des informations de base sur l'architecture sous-jacente des thèmes. Elle intéressera ceux qui ont besoin d'une compréhension plus poussée sur la façon dont fonctionnent les surcharges.
Une pratique courante en programmation consiste à séparer la logique applicative de la logique de présentation des données. Il y a de nombreuses raisons à cela, la plus évidente étant que les compétences requises pour la programmation sont très différentes de celles demandées pour l'élaboration d'une charte graphique ou d'une interface utilisateur efficace.
En tant que concepteur de thème, vous pouvez contrôler certains aspects des données disponibles, mais vous ne pouvez agir que sur leur présentation. Seuls le core Drupal et les modules travaillent avec les données saisies. Par exemple, un module peut implémenter un formulaire avec une présentation par défaut et une gestion des saisies utilisateur, puis sauvegarder les données dans la base de données. Le rôle du thème consiste simplement à modifier la présentation.
Dans Drupal, cette abstraction est assurée par le biais des fonctions de thème. C'est un accès vers le sous-système des thèmes. Il permet aux moteurs de thème de fournir une couche intermédiaire, facultative, à destination des « tagging languages » tels que PHPTAL ou Smarty. Il permet aussi aux thèmes de contrôler tout le balisage de présentation. Les moteurs de thèmes sont facultatifs en tant que « tagging languages ». PHPTemplate est le moteur par défaut. Comme con nom l'indique, il utilise le langage PHP lorsque les variables de sortie sont mélangées avec du marquage xHTML.
A partir de Drupal 6, les exigences pour la création de thèmes ont été sensiblement réduites.

Toutes les couches peuvent implémenter une personnalisation de l'affichage des données, mais (à quelques exceptions près) la surcharge ne peut avoir lieu qu'à l'intérieur des couches du thème. Les moteurs de thème peuvent surcharger la présentation des sorties provenant du core ou des modules, tandis que les thèmes peuvent surcharger tout le reste.
Notez que le moteur PHPTemplate ne surcharge aucune sortie mais que d'autres moteurs de thèmes peuvent le faire. Il existe le cas particulier d'un module pouvant modifier les sorties en partie ou en totalité, mais il a été prévu pour des situations très particulières qui ne devraient en principe pas se produire dans les cas courants. Il s'agit du module devel theme qui surcharge toutes les sorties, pour aider à la conception des thèmes (aid theme development).
Vous pouvez ignorer tout ceci en grande partie si votre thème est entièrement personnalisé par le biais de styles CSS, mais si c'est le balisage qui a besoin d'être modifié, il est important de savoir comment parvenir à sa source pour pouvoir le modifier.
- Notez que le core Drupal et de nombreux modules utilisent toujours des fonctions de thème et des fichiers gabarits pour afficher le balisage de présentation. Ne modifiez jamais ces fichiers en-dehors du dossier de votre thème, faute de quoi vous vous exposeriez à pas mal de difficultés lors d'une éventuelle mise à jour. Faire ceci s'appelle « forking ». La puissance de l'open source réside dans l'existence d'une communauté qui corrige les bugs et ajoute de nouvelles fonctionnalités. Si vous faites un « fork » vous créez un système fermé et perdez les avantages apportés par la communauté. Drupal fournit toutes les fonctionnalités pour surcharger la couche de présentation. Si vous avez à modifier les fichiers en-dehors du thème c'est que, soit vous faites fausse route, soit vous avez déniché un bug. Dans ce dernier cas, signalez plutôt le bug (http://drupal.org/node/317). Ou, mieux, fournissez un patch qui le corrige.
- Pour ceux qui s'étaient familiarisés avec le moteur de PHPTemplate présent dans les versions précédentes, presque toutes les fonctionnalités ont été enfouies plus profondément dans le core. Le travail de PHPTemplate se réduit maintenant à découvrir les fonctions de thème et les gabarits basés sur le nom du thème. Il agit moins en moteur et davantage en aide pour les thèmes.PHPTemplate fut écrit à l'origine par Adrian Rossouw pour la version 4.7 de Drupal. Leschangements pour la version 6 furent l'œuvre de Earl Miles. Un forum de discussion explique les raisons de la création initiale du moteur.
- Version imprimable
- Ajouter un commentaire
- 1113 lectures


Commentaires récents
il y a 6 heures 6 min
il y a 23 heures 53 min
il y a 1 semaine 3 jours
il y a 2 semaines 3 jours
il y a 3 semaines 12 heures
il y a 3 semaines 6 jours
il y a 4 semaines 1 heure
il y a 4 semaines 3 heures
il y a 4 semaines 2 jours
il y a 4 semaines 6 jours