[英]Override html.tpl.php per node type does not work
我看到这是以前问过的几次,我尝试了答案,然后尝试修改了答案,但什么也没有。
案例:我已经安装了高级论坛,并且我正在使用appcache(现在不要让亲爱的人逃跑!)显然,在浏览论坛时我需要关闭appcache,并且我设法为/ forum创建了自定义html.tpl.html。和/ forums,所以当我查看论坛列表和主题列表时,不会被缓存。 但是然后:当我查看论坛主题时,它是一个帖子,并且帖子类型(机器类型是论坛)并且我已经在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的路径,但不能更改节点的类型。 请帮助我,并纠正我做这些事的知识。
谢谢大家!!! (顺便说一句,我不需要上一堂应用程序缓存,诚挚的,如果您的html标记中有manifest = x.appcache“,即使它在网络部分中,它也会缓存它)
$vars['theme_hook_suggestions']
和$vars['theme_hook_suggestion']
之间略有差异。
$vars['theme_hook_suggestions']
是主题建议的数组 ,并在该阵列的端部的模板具有比之前的部分更高的优先级。
// 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;
天哪,我为您感到抱歉。
应该是$vars['theme_hook_suggestions']
而不是$vars['theme_hook_suggestion']
(建议末尾的s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.