我看到之前几次被问过,我尝试了答案,我尝试修改答案,但没有。
案例:我安装了高级论坛,我正在使用appcache(你现在不用亲自逃跑!)显然我需要在浏览论坛时关闭appcache,并设法制作自定义html.tpl.html for / forum和/ forums,所以当我看论坛列表和主题列表时,我不会被缓存。但那时:当我看论坛主题时,它是一个帖子ofc,帖子类型(机器类型是论坛),我在template.php中定义:
function flowrox_preprocess_html(&$vars) {
$node = menu_get_object();
if ($node && $node->nid) {
$vars['theme_hook_suggestion'][] = 'html__' . $node->type;
}
}
它不会改变。
所以我能够为路径更改html.tpl.php,但不能更改节点类型。请帮助我,并纠正我做这些事情的知识。
全部谢谢!!! (顺便说一句,我不需要appcache的教训,真诚的,如果你的html标签中有manifest = x.appcache,它会缓存它,即使它在网络部分)
答案 0 :(得分:4)
$vars['theme_hook_suggestions']
和$vars['theme_hook_suggestion']
之间存在细微差别。
$vars['theme_hook_suggestions']
是主题建议的 ARRAY ,此数组末尾的模板优先级高于之前的模板。
// example
$vars['theme_hook_suggestions'][] = 'html__' . $node->type;
$vars['theme_hook_suggestion']
是 STRING ,表示要使用的模板文件,其优先级高于$vars['theme_hook_suggestions']
。这意味着,如果将任何主题建议传递给$vars['theme_hook_suggestion']
,则$vars['theme_hook_suggestions']
将被忽略。
// example
$vars['theme_hook_suggestion'] = 'html__' . $node->type;
答案 1 :(得分:1)
它应该是$vars['theme_hook_suggestions']
而不是$vars['theme_hook_suggestion']
(建议结束时的s)