每个节点类型覆盖html.tpl.php不起作用

时间:2014-05-05 12:02:12

标签: php drupal drupal-7 drupal-theming

我看到之前几次被问过,我尝试了答案,我尝试修改答案,但没有。

案例:我安装了高级论坛,我正在使用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,它会缓存它,即使它在网络部分)

2 个答案:

答案 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)