Drupal 7 自定义内容类型主题从 node.tpl 隐藏页眉/页脚

Posted

技术标签:

【中文标题】Drupal 7 自定义内容类型主题从 node.tpl 隐藏页眉/页脚【英文标题】:Drupal 7 custom content type theme hiding Header/footer from node.tpl 【发布时间】:2014-06-22 21:37:32 【问题描述】:

我有一个自定义内容类型“mycustomcontenttype”,并且我有一个此内容类型的视图列表。我在每个节点的标题中也有一个链接,单击时将打开一个带有节点详细信息的弹出阴影框。我的问题是当详细信息出现在弹出窗口时,我拥有所有带有页眉/页脚的其余站点布局,而我只想拥有没有页眉页脚的节点详细信息。 我的节点模板文件名为 node--mycustomcontent.tpl。我想在此模板中隐藏或禁用页眉和页脚。

已解决 我终于找到了解决方案。在 page.tpl.php 我设置了一个 if 语句,如下所示

    if ($node->type != 'mycustomcontenttype')  print render($page['header']);  

【问题讨论】:

你必须创建一个新的 page.tpl.php 来实现这个。 弹出窗口中有什么?它只是节点预告片或字段或 div 中的其他内容,还是节点页面的 iframe? 另外,如果它是 iframe,用户是否也可以在 iframe 之外导航到该页面? @rooby Popup 来自视图列表并包含 mycustomcontenttype 节点。 那么它是 iframe 还是不是 iframe?弹出窗口是来自自定义代码还是来自 drupal.org 的模块? 【参考方案1】:

您的模板(node--mycustomcontent.tpl)实际上将模板分开以在节点中呈现数据,并且默认调用 page.tpl.php,其中还包括页眉和页脚。

您可以轻松地将 page.tpl.php 与您的内容类型分开。在以下线程中,您将找到多种为您的内容类型创建模板的方法。 https://drupal.org/node/1142800

【讨论】:

我尝试了你的建议并创建了一个页面--mycustomcontent.tpl.php,我只在源代码中留下了这个: 但没有任何改变。 你必须确保系统使用页面--mycustomcontent.tpl.php 线程(drupal.org/node/1142800)我提到会帮助你【参考方案2】:

创建一个名为 page—mypagename.tpl.php 的文件,并将其放在您的主题文件夹中。我建议复制 page.tpl.php 并将其重命名为 page-mypagename.tpl.php,您可以在此处删除页眉和页脚,以免被渲染。

这会渲染页脚:

<footer class="footer">
 <?php print render($page['footer']); ?>
</footer>

【讨论】:

以上是关于Drupal 7 自定义内容类型主题从 node.tpl 隐藏页眉/页脚的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Drupal 8 中自定义/样式/主题自定义内容类型的输出?

Drupal6自定义内容类型页面主题

Drupal 自定义内容类型列表视图

Drupal 7根据内容类型无法正常创建自定义模板

Drupal 7中按内容类型的主题节点

drupal 8 ——自定义权限