Ajouter des suggestions de templates à un module Drupal

On a parfois besoin d'ajouter des suggestions de templates à un module. Pour cela, il faut altérer le registre du thème et ajouter une suggestion dans la fonction preprocess.

Pour ajouter une suggestion de template de blocks nommé "mytemplate.tpl.php" dans le sous-dossier "theme" de votre module :

/**
* Implementation of hook_theme_registry_alter().
*/
function MYMODULE_theme_registry_alter(&$theme_registry) {
  $theme_registry['block']['theme paths'][] = drupal_get_path('module', 'MYMODULE') . '/theme';
}
 
/**
* Implementation of hook_preprocess_block().
*/
function MYMODULE_preprocess_block(&$variables) {
  $variables['template_files'][] = 'mytemplate';
}