Drupal 6 - 模块中的自定义节点类型模板

时间:2011-05-27 07:30:53

标签: drupal drupal-6 drupal-modules drupal-theming

我有一个添加新内容类型的模块。

对于这个内容类型,我想提供一个node_contenttype.tpl.php节点类型模板, 但Drupal不会在模块目录中识别此模板,只能在主题中识别。

如何让Drupal(6)使用我的模板?

1 个答案:

答案 0 :(得分:10)

您可以使用hook_theme_registry_alter()

以下是在我的自定义模块中使用它的示例(只需将'mymodule'替换为模块名称):

/**
 * Implementation of hook_theme_registry_alter()
 */
function mymodule_theme_registry_alter(&$theme_registry) {
  $template = 'node';
  $originalpath = array_shift($theme_registry[$template]['theme paths']);
  $modulepath = drupal_get_path('module', 'mymodule');
  // Stick the original path with the module path back on top
  array_unshift($theme_registry[$template]['theme paths'], $originalpath, $modulepath);
}

现在,Drupal将检查您的模块文件夹以查找节点模板覆盖。