1

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

=====

我的问题与我见过的所有其他上下文过滤器块问题有何不同:
- 使用 Mongo
- 在上下文过滤器上设置了默认值
- 结果在视图预览中正确显示,但不在页面

上 在 Mongo 上使用 Drupal 7 和 EFQ视图,我需要在 TERM 页面上显示所有已用术语 TERM 标记的 NODETYPE 节点。(使用 Mongo 上的 Drupal,分类索引存储在 MySql 中,但节点内容存储在 Mongo 中,因此术语页面无法按预期工作,并且不返回任何内容。因此需要一个视图来建立此功能。<-- 是的,这个真是愚蠢。)

我的分类是一个拥有自己的字段的实体,& 标记的内容出现在一个块中,在术语自己的字段下方。(这就是为什么我不只是创建一个页面视图来显示标记的内容——bc。我必须显示该术语自己的字段。)

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

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

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

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

当过滤器可用时:
- 验证器:分类术语、词汇标签
- 过滤器值类型:转换为术语 ID 的术语名称
- 将 URL 中的破折号转换为术语名称过滤器值中的空格


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

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

无论使用 C.Filter 中的术语名称还是术语 ID,预览中的查看结果都会正确显示。但是不管怎么设置,实际页面上的block都会返回所有的NODETYPE节点。

在分类页面上,该块显示在自定义区域或页面的主要内容区域中。在这两种情况下,所有节点都会显示,未过滤。块上启用了 Ajax,这是一个很好的衡量标准。

我读过/尝试过的不适用/不起作用的主题:(只能发布 2 个,但我有 15 个):
Drupal 7 视图带有页面和块的上下文过滤器
drupal 7 视图块和上下文过滤器不起作用

4

1 回答 1

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) 的全局 Null 挡住了路。没有它,只需使用 arg(1) 的值,一切正常。

于 2013-09-12T21:34:09.367 回答