任何人对如何将区域嵌入视图.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字节)
我很难过。有什么想法吗?
谢谢!
答案 0 :(得分:2)
'快速而肮脏'的方式:您可以直接将theme('blocks', [region_name])
调用放入视图.tpl.php文件中。
虽然预处理功能旨在更好地分离“业务”逻辑与“显示”逻辑,但它们不是必需的,因此您仍然可以将自定义代码放在.tpl.php文件中,无论您喜欢什么样的方式
'正确'方式:是视图的预处理函数,只有多个。看一下views模块的theme.inc文件。在那里,您可以找到视图可能使用的不同模板的不同预处理函数(例如,“未格式化”与“表格”对比“列表”等)。您只需找到与要注入新变量的视图模板相关的那个。