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

发布于 2024-11-01 01:53:34 字数 110 浏览 0 评论 0原文

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

So I have three different blocks inside my right sidebar region. What I would like to do is change which one gets displayed based on the content type. I'm new to Drupal, and from what I can see in the available variables list, there's no way for me to see what content type I'm in when customizing block.tpl.php. Is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

静若繁花 2024-11-08 01:53:34

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

另一种选择是 Panels 模块,但 Panels 的功能要多得多,因此界面也更复杂,因此它对于初学者来说可能很难掌握。

I'd recommend using the Context module to define different "contexts" for the different content types. Each context can then be configured to display different blocks.

Another alternative is the Panels module, but Panels does a lot more and consequently has a more complex interface, so it can be difficult for beginners to master.

浅黛梨妆こ 2024-11-08 01:53:34

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

在这里您可以指定要显示块的类型。

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

There is no need for an extra module in Drupal 7. When you are editing the block (in the CMS, not the template file) look at the "Visibility settings" under "Content Types"

Here you can specify which types to show the block on.

Note: if none are selected then it will be available in every content type.

清欢 2024-11-08 01:53:34

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

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

现在您可以使用以下方式访问该类型: $node->type

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

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

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

文章:文章/[title-raw]
Products: products/[title-raw]

然后,设置要根据 url 路径显示的块。

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

If you want to use just 1 block, you could add some code to get the node type:

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

And now you can access the type with: $node->type

If you were going with 3 separate blocks ...

Install the path auto (http://drupal.org/project/pathauto)

Set your node paths to be different. For this example, I'll use articles and products as the content types:

Articles: articles/[title-raw]
Products: products/[title-raw]

Then, set your blocks to display based on url path.

For your article block, use: articles/*
For your products block, use: products/*

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文