Drupal 7 views block with default value contextual filter不在页面上过滤(Mongo)

时间:2013-08-07 22:36:51

标签: mongodb drupal-7 drupal-contextual-filters

tl; dr:Views Block,带有上下文过滤器,WITH默认值。结果在预览中正确显示,但不在页面上显示。带有路径别名的Page = taxonomy术语页面。在Mongo上运行。

=====

我的问题与我见过的所有其他上下文过滤器阻塞问题有何不同:
- 使用Mongo
- 请在上下文过滤器上设置默认值 - 结果在视图预览中正确显示,但不在页面上显示  
在Mongo上使用Drupal 7,使用EFQ Views,我需要在TERM页面上显示已使用术语TERM标记的所有NODETYPE节点。 (使用Mongo上的Drupal,分类索引存储在MySql中但是Mongo中的节点内容,因此术语页面不能按预期工作,并且不返回任何内容。因此需要一个视图来建立此功能。< - 是的,这真是太愚蠢了。)

我的分类标准是一个拥有自己领域的实体,&标记内容显示在块中,位于术语自身字段下方。 (这就是为什么我不只是制作页面视图来显示标记内容 - bc。我必须显示术语自己的字段。)

分类术语页面有一个路径别名“vocab / term-name”。

配置我尝试过在预览中成功运行但在页面上没有成功:

1:使用路径别名。
Global:Null forarg(0)
节点:arg的标签(1)
当过滤器不可用时:
    - 提供默认值:来自URL的分类术语ID     - 从术语页面加载默认过滤器


- 来自URL,路径组件2的原始值 - “使用路径别名”已选中

当过滤器可用时:
- 验证者:分类术语,词汇标签
- 过滤值类型:术语名称转换为术语ID
- 将URL中的短划线转换为术语名称过滤器值中的空格

2:使用术语ID
过滤器不可用时:
- 来自URL,路径组件3的原始值

当过滤器可用时:
- 验证者:分类术语,词汇标签
- 过滤器值类型:术语ID

无论在C.Filter中使用术语名称还是术语ID,

预览中的查看结果都会正确显示。但无论如何设置,实际页面上的块都会返回所有NODETYPE节点。

在分类法页面上,该块显示在自定义区域或页面的主内容区域中。在这两种情况下,所有节点都显示,未经过滤。为了更好的衡量,在块上启用了Ajax。

我读过/试过但不适用/不工作的话题:(只能发帖2,但我有15个):
Drupal 7 views Contextual filters with Page & Blocks
drupal 7 views block and contextual filter not working

1 个答案:

答案 0 :(得分:2)

结果显示有效的设置:

Contextual filter: Taxonomy TAGS
Default value: Raw value from URL, Path component 2 
Check "Use path alias"
When filter IS present - Specify validation Criteria
Validator: Taxonomy Term (from the checked vocab)
Filter value type: "Term name converted to Term ID"
Check "Transform dashes in URL to spaces in term name filter values"

arg(0)的全球空缺阻碍了。没有它,只需使用arg(1)的值,事情就可以了。