Mode de debug pour les thèmes Drupal

Depuis la version 7.33, Drupal embarque dans le "core" un mode de debug pour le thème.

On peut voir dans le fichier CHANGELOG.txt

Drupal 7.33, 2014-11-07
-----------------------
.../...
- Added a "theme_hook_original" variable to templates and theme functions and
  an optional sitewide theme debug mode, to provide contextual information in
  the page's HTML to theme developers. The theme debug mode is based on the one
  used with Twig in Drupal 8 and can be accessed by setting the "theme_debug"
  variable to TRUE (API addition).


Il s'agit donc d'un "backport" depuis Drupal 8.

Ce mode "debug" s'active via un paramètre dans le fichier sites/default/settings.php :

$conf['theme_debug'] = true;
// ou
$conf['theme_debug'] = 1;

Une fois activé, si on navigue dans les pages, on ne voit... rien !
Sauf à regarder le code source de la page HTML (c'est un mode DEBUG, ne l'oublions pas, réservé aux développeurs).
Et là, on découvre des commentaires tels que :

En haut de page (au niveau de la balise html)

<!-- THEME DEBUG -->
<!-- CALL: theme('html') -->
<!-- FILE NAME SUGGESTIONS:
   * html--mon-etablissement.tpl.php
   x html.tpl.php
-->
<!-- BEGIN OUTPUT from 'sites/all/themes/professional_theme/templates/html.tpl.php' -->

Et au niveau de chaque bloc :

<!-- THEME DEBUG -->
<!-- CALL: theme('block') -->
<!-- FILE NAME SUGGESTIONS:
   * block--hiw-common--hiw-login-block.tpl.php
   * block--hiw-common.tpl.php
   * block--header.tpl.php
   x block.tpl.php
-->
<!-- BEGIN OUTPUT from 'sites/all/themes/professional_theme/templates/block.tpl.php' -->


ou encore (pour une vue en mode bloc) :

<!-- THEME DEBUG -->
<!-- CALL: theme('block') -->
<!-- FILE NAME SUGGESTIONS:
   * block--views--mes-fichiers-block.tpl.php
   * block--views.tpl.php
   * block--content.tpl.php
   x block.tpl.php
-->
<!-- BEGIN OUTPUT from 'sites/all/themes/professional_theme/templates/block.tpl.php' -->

Ceci permet donc de savoir dans quels fichiers templates aller chercher pour faire les modifications du thème.

Le template utilisé est celui marqué par une croix 'x', et il est indiqué par la ligne BEGIN OUTPUT from... . Les autres sont des suggestions qui pourraient être utilisées.

Par exemple, si je duplique le modèle block.tpl.php en block--views.tpl.php, on peut constater que le template utilisé change  :

<!-- THEME DEBUG -->
<!-- CALL: theme('block') -->
<!-- FILE NAME SUGGESTIONS:
   * block--views--mes-fichiers-block.tpl.php
   x block--views.tpl.php
   * block--content.tpl.php
   * block.tpl.php
-->
<!-- BEGIN OUTPUT from 'sites/all/themes/professional_theme/templates/block--views.tpl.php' -->

Pratique pour affine le theming, sans devoir installer un module tel que devel_themer !

 

 

Catégorie