Drupal6:在视图.tpl.php文件中嵌入一个区域

时间:2009-10-05 19:33:17

标签: drupal templates drupal-6 preprocessor theming

任何人对如何将区域嵌入视图.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字节)

我很难过。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

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

虽然预处理功能旨在更好地分离“业务”逻辑与“显示”逻辑,但它们不是必需的,因此您仍然可以将自定义代码放在.tpl.php文件中,无论您喜欢什么样的方式

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