gpt4 book ai didi

templates - Drupal : How do I invoke a template in a module?

转载 作者:行者123 更新时间:2023-12-04 06:41:51 25 4
gpt4 key购买 nike

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

我以为我可以做类似的事情:

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

...然后创建一个 verysmallsnippet.tpl.php文件在事件主题文件夹中,然后期望 Drupal 找到模板文件并使用传递给主题函数的参数评估模板。这是对模板引擎如何工作的过度简单化的解释——还是我需要先设置主题注册表?要不然是啥?

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

最佳答案

是的,有点过于简单化了;)

要获得比您链接的 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;
}

您可以在该 Hook 中定义更多详细信息,但这是您使用模板文件所需的最低要求(引擎将在查找文件时为您添加“tpl.php”部分)。

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

关于templates - Drupal : How do I invoke a template in a module?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4148462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com