Drupal 7:根据内容类型显示不同的侧边栏


Drupal 7: Display different Sidebar depending on Content Type

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

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

另一个选择是Panels模块,但是Panels做的更多,因此有一个更复杂的界面,所以初学者很难掌握。

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

这里你可以指定在哪些类型上显示块。

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

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

现在你可以使用:$node->type

如果你要用3个独立的块…

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

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

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

然后,设置你的块显示基于url路径。

对于你的文章块,使用:articles/*对于你的products块,使用:products/*