Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Aperçu de l'architecture des thèmes

Traduction de la page http://drupal.org/node/171188
publiée/actualisée le 3 Janvier 2010 sur drupal.org


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 à dissocier la partie programmation proprement dite de la partie 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 toutes les balises de présentation. Les moteurs de thèmes sont facultatifs en tant que « tagging languages ». PHPTemplate est le moteur par défaut. Comme son nom l'indique, il utilise le langage PHP lorsque les variables affichées sont mélangées avec du balisage 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). D'autres infos sont exposées dans cette section.

Vous pouvez ignorer tout ceci en grande partie si votre thème est entièrement basé sur des styles CSS, mais si c'est le balisage qui doit être modifié, vous devez savoir comment localiser sa création 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. Les changements pour la version 6 furent l'œuvre de Earl Miles. Un forum de discussion explique les raisons de la création initiale du moteur.