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

Guide du débutant pour surcharger les affichages personnalisables

Traduction de la page http://drupal.org/node/457740
publiée / actualisée le 27 Novembre 2010 sur drupal.org


L'idée de base dans la conception de thèmes Drupal est la surcharge des données affichées par les modules et le noyau Drupal. Au lieu de modifier un module pour modifier ce qu'il affiche (ce qui n'est pas à faire car cela compliquerait les mises à jours ultérieures), on modifie l'aspect de ce qui est affiché, en ajoutant des fichiers ou des fonctions au thème. Ces fichiers et fonctions sont prioritaires sur les paramètres du module pour ce qui concerne la mise en forme et la production du code HTML.

La surcharge se fait soit en surchargeant des fonctions du thème, soit en surchargeant des fichiers du thème, le choix de la méthode dépend de la façon dont l'affichage est créé par Drupal.

S'éviter d'avoir à tout surcharger

Avant de décider que ce qu'affiche de Drupal ou de l'un des modules de votre site doit être modifié, examinez les possibilités suivantez - vous vous éviterez peut-être l'ensemble du processus :

  • Pouvez-vous simplement modifier un paramètre ? Par exemple, cliquer sur le lien "Configurer" d'un bloc vous permettra de modifier son titre, voire de le supprimer (sur la page de configuration des blocs - Administrer » Construction du site » Blocs - , vous pouvez aussi déplacer les blocs dans d'autres régions de la page).

    Certains modules vous permettent de modifier des parties de ce qu'ils affichent grâce à leurs pages de configuration (libellés pour des champs texte, ordre d'affichage, etc). Pour trouver ces pages, cliquez sur Administrer puis sur Par module et regardez ce qui est proposé.

    D'autres paramètres sont accessibles via la page de configuration des thèmes, et d'autres paramètres encore peuvent se trouver dans les différents onglets des pages de configuration des Types de Contenus (Administrer » Gestion de contenu » Types de contenu).

  • Pouvez-vous obtenir ce que vous souhaitez via les styles CSS ? Presque tout ce qui est affiché par Drupal est encadré par des DIV qui utilisent des ID ou des classes spécifiques, vous pouvez ainsi ne personnaliser qu'une partie de l'affichage. Les CSS vous permettent de modifier les polices, les tailles, les emplacements, les images d'arrière-plan, etc. Pour surcharger un style CSS fournit par Drupal ou par un module, il suffit de l'ajouter à l'un des fichiers CSS de votre thème.

Si aucune de ces possibilités ne vous permet de personnaliser ce que vous voulez, vous devrez surcharger les sorties HTML de Drupal ou de ses modules. Lisez la suite.

Surcharger les fonctions de thème

Une fonction de thème est une fonction PHP de Drupal dont le nom commence par theme_, comme par exemple theme_username. Pour surcharger une fonction de thème :

  1. Ouvrez votre fichier template.php dans un éditeur de texte.

  2. Copiez la fonction de thème trouvée dans votre fichier template.php (une façon de trouver la fonction est de chercher son nom dans http://api.drupal.org. Devel indique aussi la référence des fonctions dans son menu).

  3. Renommez la fonction copiée (voir ci-dessous). Si le préfixe de votre thème est "merveilleux" et que la fonction de thème que vous surchargez s'appelle "theme_xyz", la fonction sera renommée merveilleux_xyz

    Si vous surchargez template_preprocess_xyz, le nouveau nom sera merveilleux_preprocess_xyz.

  4. Pour changer un nom de fonction, par exemple theme_xyz en merveilleux_xyz, trouvez la ligne qui ressemble à ceci :

    function theme_xyz( $a, $b, $c) {
    et changez-là en :
    function merveilleux_xyz( $a, $b, $c) {

    Assurez-vous de ne pas modifier ce qu'il y a entre les parenthèses !

  5. Modifiez la fonction pour qu'elle fasse ce que vous souhaitez.

  6. Uploadez le fichier template.php sur votre site, dans le dossier de votre thème.

  7. Rafraîchissez le cache de thème (voir le registre de thèmes)

Trouver d'où vient le code à personnaliser

La première étape dans le processus de surcharge du code HTML de Drupal consiste à trouver qui fournit ce code. Ce que vous recherchez est :

  • soit une fonction de thème (une fonction PHP appelée theme_xyz, comme theme_search ou theme_aggregator_block_item)
  • soit une fonction de pré-traitement de thème (une fonction PHP appelée template_preprocess_xyz)
  • soit un fichier de thème (un fichier PHP qui se termine par .tpl.php, comme views-more.tpl.php)

Pour trouver le bon fichier ou la bonne fonction, commencez par trouver le dossier du module qui produit l'affichage (dans modules, sites/all/modules ou sites/votre_sous_dossier/modules).

Les fichiers de thèmes se trouvent habituellement au plus haut niveau du dossier du module; dans le dossier du sous-module en-dessous, ou dans un dossier appelé theme situé en-dessous.

Les fonctions de thèmes et les fonctions de pré-traitement des gabarits (template preprocess functions) se trouvent soit dans le fichier module (qui se termine par .module) ou dans un fichier inclus (qui se termine par .inc); le fichier se trouvera dans le dossier du module, ou dans un sous-dossier. Une bonne façon de trouver la bonne fonction ou le bon fichier est de rechercher un ID CSS ou une classe spécifique de l'élément HTML que vous voulez modifier, ou un texte unique produit par le module.

Une autre façon de trouver la fonction à surcharger est d'utiliser les fonctionnalités Theme developper du module Devel.

Certains modules prennent en compte les templates suggestions. Par exemple, dans Views 2, vous pouvez avoir des informations sur les thèmes quand vous modifiez une vue -- Views vous dit quels fichiers de thèmes seront utilisés pour produire la vue, et le premier de chaque liste est un fichier de thème situé dans le sous-dossier themes de votre module Views; c'est ce fichier de thème que vous devrez surcharger. Les autres noms de la liste sont des propositions pour les noms de fichiers qui seront placés dans votre thème, dépendants du niveau de détail de ce que vous voulez surcharger (par exemple, voulez-vous surcharger toutes les vues affichées, ou juste la vôtre ?).

Vous pouvez également utilisez les suggestions pour surcharger l'habillage des modules du core de Drupal. Par exemple, si vous voulez surcharger l'affichage d'un node d'un type de contenu en particulier, vous pouvez utilisez le fichier node.tpl.php de votre thème (ou du core Drupal) comme fichier à surcharger, le copier et le renommer en node-content_type_name.tpl.php. Vous trouverez plus d'informations sur les fichiers du core et sur les noms de fichiers suggestions sur la page Fichiers gabarits du noyau (core templates).

Une fois que vous avez localisé la bonne fonction ou le fichier à surcharger, suivez l'une des deux voies décrites dans les pages suivantes (actualisation en cours - Avril 2011 - NdK).

Cependant, si ce qui produit le code HTML que vous voulez surcharger ne se trouve ni dans une fonction de thème, ni dans une fonction de pré-traitement de gabarit, ni dans un fichier de thème, vous ne pourrez sans doute pas faire de modifications avec les seules fonctions. Vous devrez probablement consulter les forums ou de contacter le développeur du module pour trouver comment modifier son affichage.