Drupal 6中针对特定节点的自定义模板?

5

我知道有很多不同的自定义模板文件,例如page.tpl.php和node.tpl.php等。但是是否有一种方法可以为特定的节点ID制作自定义模板?这个node-3.tpl.php不起作用,但是否有一种方法可以实现这一点?

更新代码

function phptemplate_preprocess_node(&$vars) {
    $vars['template_files'][] = 'node-' . $vars['nid'];
}

我需要同样的东西,我尝试了你在这里提到的,但对我没有渲染。如果我没错的话,我需要将这个函数附加到template.php中? - Kgn-web
2个回答

4

这是针对Drupal 7的。Drupal 6手册在这里:http://drupal.org/node/1089642,正确的模板文件是`page-node-3.tpl.php`。 - Clive
1
我在这个主题上做了一些搜索,并发现在Drupal 6中,node-3.tpl.php不能直接使用。它看起来像是将其视为page-node-3.tpl.php,这又不是我想要的,因为那是整个模板。所以我找到了一些代码,可以将指定的模板模式添加到“节点”,并且我让它工作了。如果你将我的更新中找到的代码添加到一个自定义模块中,你现在可以使用“node-3.tpl.php”,它将用于节点内容本身而不是整个页面。 - Erich H.
@ErichH。我上面写的是页面模板的内容。节点模板放在页面模板内部(即页面是基础,节点是内容区域)。 - AKS
@AyeshK,我需要同样的东西,我尝试了Enrich更新的函数,但它对我没有渲染。如果我没错的话,我需要将这个函数附加到template.php中? - Kgn-web
@AyeshK,我也在使用Drupal 6。 - Kgn-web
显示剩余2条评论

0
请确保重新构建主题注册表。如果没有这样做,Drupal将完全忽略您添加的node-x.tpl.php文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接