带有块视图的上下文过滤器


19

我有一个页面视图(“ / news”),该页面具有用于主题(“ news / design”,“ news / coding” ...)的上下文过滤器,它们是分类法术语,并且工作正常。由于移动主题的某些更改,我需要一个块视图而不是页面视图,但无法使其与过滤器一起使用。

使用旧的过滤器设置,我的所有文章都保存在“ / news”中,但是我使用的过滤器将默认值从过滤器更改为“来自网址的分类术语ID”;现在,我看到“ / news”的空白页面(这是一个包含阻止视图的简单页面),以及“ / news / design”的“找不到站点”等。在视图的预览中,一切正常。

这些是视图的设置。

屏幕截图

Answers:


33

通常,此块不起作用的原因是,该块没有分配的路径,并且上下文过滤器没有要处理的路径。要将块连接到路径,请返回上下文过滤器设置,然后在该部分中What to do if the URL is not available选择,Provide default value然后Raw value from URL从下拉框中选择。从Path Component框中选择上下文过滤器获取其值的URL位置。

在您的特定情况下,您已经告诉视图将URL解释为分类术语,而这可能不是URL的格式(分类/术语/ tid)。Views UI有点令人误解,因为它建议别名可以在上下文过滤器中使用,否则可以使用。Drupal在调用视图时将别名转换为基本URL值,而上下文过滤器中直接提供了别名。要使用别名,您必须如上所述专门告知它。视图功能强大,但使用起来有些棘手。如果您对SQL查询有一定的经验,可以使用的一种工具是在“设置”选项卡的“视图预览”显示中打开查询的显示。这将告诉您在调用视图时试图执行的视图。

在这个问题上可以找到更多关于这个问题的信息


嗨,非常感谢detailes的回复。现在我看到分类学术语的含义。不幸的是,它也不适用于“来自url的原始值”。调试真的很困难,因为在预览中一切正常。还有其他我看不到的东西吗?
user6670

如果它在预览中有效,但在网站上不起作用,则意味着问题不在于视图设置。可能是视图未获取URL。视图块是否放置在主题区域中?直接涉及调用视图块的快速选项卡或其他专用显示模块吗?
Ashlar

我不知道user6670,但是今天这个答案救了我。谢谢,@ Ashlar!
贝丝

1
使用此解决方案我取得了成功,但是要提到的一件事是所有上下文过滤器都需要具有默认值。一旦将所有上下文过滤器设置为“提供默认值”,“来自URL的原始值”并选择了一个位置,此解决方案就非常有效。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.