0

我已经使用视图创建了一个块,并想向其中添加一些无法从视图本身获得的信息。我需要编写一个小函数来查询一些额外的数据。

我想把这个函数放在 MYTHEME_preprocess_node 中,但是当我放一个简单的 $variables['test'] = 'test' 然后在输出块内容的 .tpl 文件之一中打印 $test 时,什么也没显示。

我在正确的轨道上吗?

4

2 回答 2

0

问题是 preprocess_ 函数与特定模板相关联。因此预处理页面将生成 page.tpl.php 中可用的变量,而 preprocess_node 将为 node.tpl.php 执行此操作。因此,您可以使用应该为所有模板运行的 MYTHEME_preprocess,也可以使用 MYTHEME_preprocess_templatename。我不确定命名方案与模板命名系统到底如何。但是,devel 模块有一个选项,允许您查看在您查看的页面上运行了哪些预处理函数,如果您无法正常工作,它应该能够帮助您找出调用预处理函数的方法。

于 2009-09-23T11:57:30.610 回答
0

您还可以使用Theme Info视图界面中的选项来识别视图拉入的模板。我不确定您是否可以为这些模板编写预处理函数,但您可以按照主题信息中提供的名称方案在主题目录中创建特定于视图的覆盖模板。

该模板可以包括 SQL 查询。

于 2009-09-23T18:37:49.597 回答