Drupal 视图 - 根据 URL 过滤内容

Posted

技术标签:

【中文标题】Drupal 视图 - 根据 URL 过滤内容【英文标题】:Drupal views- filter content based on URL 【发布时间】:2012-08-08 06:48:04 【问题描述】:

我有一个显示特定内容类型(广告)的视图。我的内容类型有一个“仅在页面上显示”字段,它是一种文本类型。在这里,我将给出应该显示特定内容的页面。

我创建了一个显示在 /blog 上的块,它显示了所有广告内容。但我希望广告仅在 url 匹配时显示在块中。

例如。如果添加了一个广告,说“abc”,“仅在页面上显示”为“/blog/europe/*”,那么只有当人们访问一个 url 说 /blog/europe/france 等时,才应该在块中显示“abc”。

现在我创建了一个视图,但我不知道如何将“仅在页面上显示”字段作为参数传递给视图。

基本上我希望发生以下情况:

if "page url" contains "show only on field" then select the content
else don't select.

这种类型的过滤器是否可以在 drupal 视图中使用?我希望意见争论可以挽救我的一天。

【问题讨论】:

【参考方案1】:

将参数传递给视图有不同的方法,具体取决于您显示视图的方式。我希望我能正确理解你的问题。听起来您想通过“仅在页面上显示”字段的值过滤视图的内容。要过滤的“仅在页面上显示”的实际值是通过 URL 传递的。

为此,您必须在视图中添加上下文过滤器。然后,您可以将“仅在页面上显示”的值作为 URL 中的参数添加到该视图。在这种情况下,当您加载视图时,它将仅显示“仅在页面上显示”字段等于您在 URL 中传递的值的那些节点。

例如,页面视图的路径可能是“path/to/view”。然后,您将在此 url 中添加“仅在页面上显示”参数(例如“path/to/view/value_of_show_only_on_page”)。当您使用此 URL 时,您的视图将被过滤,因此仅显示“仅在页面上显示”的值等于“value_of_show_only_on_page”的内容。

注意 Drupal 6 中的“上下文过滤器”在视图 UI 中被称为“参数”。

【讨论】:

你好 Benjen。谢谢。我在问题中添加了更多细节以使其更清楚。我尝试添加一个参数(D6),但找不到任何可以说“URL like field_show_on_page”的地方 添加参数时,首先选择“内容”组选项,然后选择相应的“仅在页面上显示”字段。一旦你创建了这个,视图就会假设你将在 URL 中传递一个相应的参数。请注意,视图应该已经设置了页面显示,并在“页面设置”下设置了相应的路径。然后确保用于链接到页面视图的 URL 包含您设置的路径以及您要作为参数传递的值。如果这不起作用,那么我们将不得不进一步调查您是如何设置和加载视图的。

以上是关于Drupal 视图 - 根据 URL 过滤内容的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 7:如何根据当前页面内容过滤视图内容(带有实体引用字段)

Drupal 视图,从 url 获取节点 id

在 Drupal 中搜索视图

Drupal 7 视图中的块中暴露的过滤器

如何通过 URL 将变量过滤器添加到 Drupal 6 视图?

drupal 7中的上下文过滤器视图