【问题标题】:Drupal 7 views block with default value contextual filter does not filter on page (Mongo)具有默认值上下文过滤器的 Drupal 7 视图块不会在页面上过滤(Mongo)
【发布时间】:2013-08-07 22:36:50
【问题描述】:

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

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

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

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

我读过/尝试过的不适用/不起作用的主题:(只能发 2 个,但我有 15 个):
Drupal 7 views Contextual filters with Page & Blocks
@ 987654322@

【问题讨论】:

  • 您是否尝试覆盖/克隆在视图管理页面 (/admin/structure/views) 上禁用的默认视图分类/%term 页面?

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


【解决方案1】:

原来有效的设置是:

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) 的值,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    相关资源
    最近更新 更多