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

Sous-thèmes, leur structure et l'héritage

Traduction de la page http://drupal.org/node/225125
publiée / actualisée le 11 Mars 2011 sur Drupal.org


Les sous-thèmes sont identiques aux autres thèmes, à une différence près : ils héritent des ressources de leurs thèmes parents. Il n'y a pas de limite au nombre de sous-thèmes qui peuvent dériver les uns des autres à partir du thème-parent.

Un sous-thème peut être l'enfant d'un autre sous-thème, et il peut être ramifié ou organisé comme bon vous semble. Ce qui offre de grandes possibilités :

Supposons que vous démarriez en créant un thème global qui servira de maquette de base, les détails pourront ensuite être affinés dans un sous-thème. Ainsi, à partir d'une même base de départ, vous pouvez essayer différents designs en dérivant un ou plusieurs sous-thèmes à partir de ce thème de base.

Vous travaillez sur une installation multi-site mais avez besoin d'un "look and feel" cohérent ? Avec des sous-thèmes beaucoup de ressources graphiques peuvent être partagées. Les particularités d'un site peuvent être paramétrées dans un sous-thème spécifique, et si les ressources partagées doivent être modifiées, elles ne le sont qu'une seule fois et s'appliquent à toutes les installations. Avec une organisation soignée, les possibilités sont infinies.

La création d'un sous-thème

Le sous-thème doit se trouver dans son propre dossier sur le disque. Avant Drupal 6, le dossier devait être un sous-dossier du thème parent. Dans Drupal 6 et 7 il peut être situé à l'extérieur du dossier du thème parent.

Pour que votre thème soit considéré comme le thème enfant d'un thème parent, vous devez modifier le fichier .info. Ajoutez les lignes suivantes au fichier .info du sous-thème pour déclarer son thème parent. Remplacez themeName par le nom interne du thème parent (c'est à dire le nom qui se trouve dans le fichier .info du thème parent).

base theme = themeName

Héritage des feuilles de style

Toutes les feuilles de style déclarées dans le thème parent seront héritées, tant que vous déclarez au moins une feuille de style dans le fichier .info de votre sous-thème. Vous devez déclarer au moins une feuille de style dans votre sous-thème pour hériter des feuilles de style du thème parent.

Surcharger les feuilles de style héritées: déclarez une feuille de style dans le sous-thème avec le même nom. Par exemple, pour surcharger style.css héritée d'un thème parent, ajoutez la ligne suivante dans le fichier .info du sous-thème :

stylesheets[all][]   = style.css

Vous devrez aussi créer le fichier pour style.css; si vous voulez seulement désactiver les styles importés, créez un fichier vide.

Héritage de JavaScript

Tous les fichiers JavaScripts déclarés dans le thème parent seront hérités.

Surcharger le JavaScript hérité : déclarez un fichier JavaScript avec le même nom dans le fichier .info. Par exemple, pour surcharger script.js hérité du thème parent, ajoutez la ligne suivante au fichier .info du sous-thème :

scripts[] = script.js

Vous devrez aussi créer le fichier script.js; si vous voulez simplement désactiver le script hérité, créez un fichier vide.

Héritage des fonctions Template.php

Tout ce qui a été déclaré dans le fichier template.php du thème parent sera hérité. Cela concerne la surcharge des fonctions, les fonctions de pré-traitement et tout le reste dans ce fichier. Chaque sous-thème doit aussi avoir son propre fichier template.php, dans lequel vous pouvez ajouter d'autres fonctions ou surcharger des fonctions du thème parent.

Surcharger les fonctions héritées de template.php: dans le fichier template.php du sous-thème, vous pouvez redéclarer des fonctions du fichier template.php parent (en utilisant le nom de votre sous-thème comme préfixe de fonction) pour surcharger des fonctions en particulier. On ne peut pas éviter l'héritage global de toutes les fonctions du thème parent.

Héritage des fichiers page, node, block et autres fichiers gabarits (.tpl.php)

Drupal 7 : tout fichier .tpl.php du thème parent sera hérité. Vous pouvez ajoutez des fichiers gabarits plus spécifiques - comme node--blog.tpl.php construit sur la base d'un node.tpl.php hérité.

Un trait d'union simple est toujours utilisé pour séparer les mots: par exemple, user-picture.tpl.php ou node--long--content-type-name.tpl.php, les doubles traits d'union signalent toujours une surcharge plus ciblée de ce qui précède le --. Consultez Conversion de thèmes Drupal 6.x en thèmes Drupal 7.x pour d'autres infos.

Drupal 6 : tout fichier .tpl.php du thème parent sera hérité. Cependant, pour ajouter des maquettes de mise en page plus ciblées, vous devez aussi copier manuellement le fichier de mise en page général du thème parent. Par exemple, pour ajouter un fichier gabarit node-blog.tpl.php dans un sous-thème, vous devez aussi copier le node.tpl.php du thème parent. Ce bug a été corrigé dans Drupal 7 mais ne sera pas corrigé dans Drupal 6.

Surcharger les fichiers .tpl.php hérités : pour surcharger le fichier gabarit du thème parent, ajoutez dans votre sous-thème un fichier gabarit portant le même nom.

Héritage de la copie d'écran et du logo

La copie d'écran du thème parent sera héritée. Le logo du thème parent (logo.png/logo.jpg) ne sera pas héritée.

Surcharger la copie d'écran héritée: déclarez une nouvelle image dans le fichier .info de votre sous-thème.

Héritage des regions

Les sous-thèmes n'héritent pas des regions personnalisées du thème parent. Si vous utilisez des régions personnalisées, vous devrez copier la déclaration des régions du fichier .info parent. Assurez-vous que le fichier page.tpl.php correspond bien au paramétrage des régions du sous-thème.

Héritage des couleurs et des paramètres de thème

Le support du module Color du dossier color n'est pas hérité.

Les paramètres de thème configurés via les paramètres avancés de thème de theme-setting.php ne sont pas hérités.