繁体   English   中英

无法按节点类型覆盖html.tpl.php

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM