Drupal:如何在模块中调用模板?

时间:2010-11-10 19:52:15

标签: templates drupal-6

我在自定义模块中有一些非节点数据,我想调用模板来显示数据。这个模板可能会被重复用于电子邮件输出,我想基本上只是引导Drupal并根据需要使用模板。

我以为我可以这样做:

$html = theme('verysmallsnippet', $my_fancy_data_structure);

...然后在活动主题文件夹中创建一个verysmallsnippet.tpl.php文件,然后期望Drupal找到模板文件并使用传递给主题函数的参数评估模板。这是对模板引擎如何工作的过分简单的解释 - 或者我是否需要首先设置主题注册表?或者是什么?

我查看了this question以及theme文档,我有点迷失。

1 个答案:

答案 0 :(得分:3)

是的,略显过于单纯;)

要获得比您关联的API文档更好的介绍,请从Theming Guide开始,根据您的具体需要,检查Using the theme layer (Drupal 6.x)

为了让您的示例正常工作,您需要通过实施hook_theme()告诉主题注册表您的模板:

function yourModule_theme($existing, $type, $theme, $path) {
  $items = array();
  $items['verysmallsnippet'] = array(
    'arguments' => array('my_fancy_data_structure' => array()), // Change array() to a fitting default
    'template' => 'verysmallsnippet',
  );

  return $items;
}

您可以在该挂钩中定义更多详细信息,但这是获取模板文件所需的最小值(引擎将在查找文件时添加“tpl.php”部分。)

注意:每次添加或更改hook_theme()实现时,都需要触发主题注册表的重建,否则您的更改将不会生效。