2

有人对我如何将区域嵌入到视图 .tpl.php 文件有任何想法吗?

我通过在节点 .tpl.php 中添加如下内容很容易地完成它theme_preproces_node()

$vars['promos'] = theme('blocks', 'promos');

完全没有问题。但是,显然没有theme_preprocess_view()函数,当我尝试将相同的代码段添加到theme_preprocess().

致命错误:第 42 行 /Users/cpharmston/Sites/Projects/Threespot/neh01/includes/database.mysqli.inc 中允许的内存大小为 104857600 字节已用尽(尝试分配 523800 字节)

我难住了。有任何想法吗?

谢谢!

4

1 回答 1

2

“快速而肮脏”的方式:您可以直接将theme('blocks', [region_name])调用放入视图 .tpl.php 文件中。

虽然预处理函数旨在更好地分离“业务”逻辑与“显示”逻辑,但它们并不是必需的,因此您仍然可以以任何方式将自定义代码放入 .tpl.php 文件中。

“正确”的方式:视图有预处理功能,不止一个。查看views 模块的theme.inc 文件。在那里,您会发现视图可能使用的不同模板的不同预处理函数(例如,“未格式化”、“表格”和“列表”等)。您只需要找到与要注入新变量的视图模板相关的那个。

于 2009-10-05T19:45:30.707 回答