【问题标题】:Drupal 7: Display different Sidebar depending on Content TypeDrupal 7:根据内容类型显示不同的侧边栏
【发布时间】:2011-04-14 20:57:19
【问题描述】:

所以我的右侧边栏区域内有三个不同的块。我想做的是根据内容类型更改显示的内容。我是 Drupal 的新手,从我在可用变量列表中看到的内容来看,我无法在自定义 block.tpl.php 时看到我所处的内容类型。有可能吗?

【问题讨论】:

    标签: php drupal drupal-7


    【解决方案1】:

    我建议使用Context module 为不同的内容类型定义不同的“上下文”。然后可以将每个上下文配置为显示不同的块。

    另一种选择是Panels module,但面板功能更多,因此界面更复杂,因此初学者可能难以掌握。

    【讨论】:

      【解决方案2】:

      Drupal 7 中不需要额外的模块。当您编辑块(在 CMS 中,而不是模板文件中)时,请查看“ 下的“可见性设置”内容类型"

      您可以在此处指定要显示块的类型。

      注意:如果未选择任何内容,则它将在所有内容类型中可用。

      【讨论】:

        【解决方案3】:

        如果你只想使用 1 个块,你可以添加一些代码来获取节点类型:

        <?php
        if (arg(0) == 'node') {
          $node = node_load(arg(1));
        }
        ?>
        

        现在您可以使用以下命令访问类型:$node->type

        如果您要使用 3 个单独的块...

        安装路径自动(http://drupal.org/project/pathauto)

        将您的节点路径设置为不同。对于本示例,我将使用文章和产品作为内容类型:

        文章:articles/[title-raw] 产品:products/[title-raw]

        然后,将您的块设置为根据 url 路径显示。

        对于您的文章块,使用:articles/* 对于您的产品块,使用:products/*

        【讨论】:

          猜你喜欢
          • 2012-01-18
          • 2016-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-07
          • 1970-01-01
          • 2016-01-06
          相关资源
          最近更新 更多