我有一个添加新内容类型的模块。
对于这个内容类型,我想提供一个node_contenttype.tpl.php节点类型模板, 但Drupal不会在模块目录中识别此模板,只能在主题中识别。
如何让Drupal(6)使用我的模板?
答案 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将检查您的模块文件夹以查找节点模板覆盖。