【发布时间】:2011-04-14 20:57:19
【问题描述】:
所以我的右侧边栏区域内有三个不同的块。我想做的是根据内容类型更改显示的内容。我是 Drupal 的新手,从我在可用变量列表中看到的内容来看,我无法在自定义 block.tpl.php 时看到我所处的内容类型。有可能吗?
【问题讨论】:
所以我的右侧边栏区域内有三个不同的块。我想做的是根据内容类型更改显示的内容。我是 Drupal 的新手,从我在可用变量列表中看到的内容来看,我无法在自定义 block.tpl.php 时看到我所处的内容类型。有可能吗?
【问题讨论】:
我建议使用Context module 为不同的内容类型定义不同的“上下文”。然后可以将每个上下文配置为显示不同的块。
另一种选择是Panels module,但面板功能更多,因此界面更复杂,因此初学者可能难以掌握。
【讨论】:
Drupal 7 中不需要额外的模块。当您编辑块(在 CMS 中,而不是模板文件中)时,请查看“ 下的“可见性设置”内容类型"
您可以在此处指定要显示块的类型。
注意:如果未选择任何内容,则它将在所有内容类型中可用。
【讨论】:
如果你只想使用 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/*
【讨论】: