【问题标题】:Custom template for specific node in Drupal 6?Drupal 6中特定节点的自定义模板?
【发布时间】:2012-08-08 17:56:14
【问题描述】:

我知道有很多不同的自定义模板文件,例如 page.tpl.php 和 node.tpl.php 等。但是有没有办法为特定节点 ID 制作自定义模板?这不起作用 node-3.tpl.php,但是有没有办法做到这一点?

更新代码

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

【问题讨论】:

  • @Enrich 我需要同样的东西,我试过你在这里提到的,但它没有为我呈现。如果我没记错的话,需要在template.php中追加这个函数吗?

标签: templates drupal drupal-6


【解决方案1】:

对于 Drupal 6,页面模板是 'page-node-3.tpl.php' 并在http://drupal.org/node/1089642阅读手册

Drupal 7,页面--node--3.tpl.php:http://drupal.org/node/1089656

感谢@Clive 和@asiby。

【讨论】:

  • 那是 Drupal 7 的。Drupal 6 手册在这里:drupal.org/node/1089642,正确的模板文件是page-node-3.tpl.php
  • 我首先尝试过,是的,确实有效,但这是针对整个页面的。所以我必须复制我的页面模板。所以现在如果我需要对我的页面模板进行调整,无论我制作多少自定义节点模板,我都必须记住在两个或多个地方进行调整。我只想自定义给定节点的节点显示,而不是整个页面。
  • @ErichH。如果您要覆盖节点模板,则还需要主题中的核心 node.tpl.php 文件的副本。如果您还没有,请将其复制过来,清除缓存,然后就可以开始了
  • 我对该主题进行了一些搜索,发现在开箱即用的 Drupal 6 中,node-3.tpl.php 不起作用。看起来它与 page-node-3.tpl.php 一样对待它,这又不是我想要的,因为那是整个模板。因此,我找到了一些将指定模板模式添加到“节点”的代码,并且我得到了它的工作。如果您将在我的更新中找到的代码添加到我的原始帖子到自定义模块,您现在可以使用“node-3. tpl.php,它将用于节点内容本身,而不是整个页面。
  • @ErichH。我上面写的来自页面模板。节点模板进入页面模板内部(即页面是基础,节点是内容区域)
【解决方案2】:

确保重建主题注册表。否则将导致 Drupal 完全忽略您将添加的 node-x.tpl.php 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多