如果有多个过滤器,如何显示仅使用一个术语ID标记的结果

时间:2015-03-12 22:19:19

标签: drupal-7 drupal-views drupal-exposed-filter drupal-contextual-filters drupal-views-relationship

我在Drupal 7中有一个博客,并使用Views来显示字段。我在侧栏上显示了两组标签:

1) SHAPES

Triangle

Square

Rectangle

2) COLOR

Red 

Blue 

Green

我通过Structure>创建了2组标签。分类>词汇>添加术语

对于View,我使用两个公开的过滤器创建了一个视图(类似于this tutorial中所做的那样)

查看:

Path: '/blog/tag'

Filter Criteria:
    1) 'Content: Shape (exposed)'

        Exposed form in Block: 'Yes'

        Filter identifier: 'shape_id'

    2) 'Content: Color (exposed)'

        Exposed form in Block: 'Yes'

        Filter identifier: 'color_id'

Exposed form style: BEF

将曝光的滤波器设置为Structure>中的适当块区域。块。

如果我点击“三角形”,则只会显示标有“三角形”的博文。然后,如果我点击“红色”,则只显示标有“红色”的帖子。

当我点击这些条款时,看起来正在显示正确的博客帖子。该URL附加了两个词汇表中的ID,但我似乎无法显示正确的组合。

点击“三角形”时所需的网址:'/ blog / tag /?shape_id = 1& color_id = All'

点击“红色”时所需的网址:'/ blog / tag /?shape_id = All& color_id = 1'

因此,基本上结果应显示仅标有一个术语ID的项目。

但是,它目前的工作方式是,如果我点击“三角形”,然后点击“红色”,“三角形”和“红色”都有“选定”类(都是粗体),网址是: / blog / tag /?shape_id = 1& color_id = 1'

我能够获得所需URL的唯一方法是显示“-Any-”选项。但是,我使用的用例是在标签列表中没有列出“-Any-”。

如果没有在条款列表中列出'-Any-',这是否可行?我之前从未使用过多个曝光过滤器,所以任何指导都会很好,因为我已经研究了近一周了。我在another post中读到,上下文过滤器允许我创建单独的路径别名,这些别名是干净的URL,但我还没有成功地做到这一点。

非常感谢任何帮助。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

我尝试使用分类术语页面方法,但无法弄清楚如何正确显示字段。显示的字段基于我的博客内容类型中的预告片。使用暴露过滤器选项不是解决方案,因为我的用例是仅显示基于一个标签的结果。什么对我有用:

1)将新视图添加到现有博客视图

2)格式:'未格式化列表'     SHOW:'Fields'

3)FIELDS:[添加您需要显示的字段]

4)过滤标准:'内容:已发布(是)'; '内容:类型(=博客)'

5)路径:'/ blog / [你的词汇名称] /%'

6)上下文过滤器:'内容:具有分类术语ID'

当过滤器值不在URL中时:'显示指定字段的所有结果'

当过滤器值在URL或提供默认值时:选择“覆盖标题”并在输入字段中输入:'[您的词汇名称] /%1'

选择“指定验证标准”

Validator下拉菜单,选择'Taxonomy Term'

词汇表:选择合适的词汇表名称

过滤器值类型下拉列表:'术语名称转换为术语ID'

选择'将网址中的短划线转换为术语名称过滤器值中的空格'

如果过滤器值未验证,请采取以下措施:选择适合您需要的适当行为(在我的情况下:'显示内容“未找到结果”')

如果您需要在结果页面的标题中显示术语名称,请在同一视图中> HEADER>添加“全球:未经过滤的文字”>然后在文本区域添加“查看[你的词汇名称] /%1”的结果

保存视图。由于我有多个过滤器,我克隆了上面的视图并重命名了所有内容。因此,我最终在现有的博客视图中添加了3个额外的视图。

我以前为Taxonomy Term Paths设置了URL别名,所以我删除了这些

另外,我必须单独回到我的分类条款并删除从模式生成的URL别名

要让标签列表显示在右侧,并带有所需的网址结构/ blog / [您的词汇名称] / [您的姓名],我创建了一个单独的新视图:

显示:'[你的词汇名称]''类型的'分类术语'

创建一个块

'字段'的'未格式化列表'

FIELDS:'分类:术语名称'>单击此按钮并取消选中“将此字段链接到其分类术语页面”。然后展开“重写结果”部分并选择“将此字段输出为链接”>在链接路径中:'博客/ [您的词汇名称] / [名称]'(网址结构末尾的[名称]应该与您使用方括号一样显示)>选择'用短划线替换空格'>将案例转换为“小写”>单击“应用”

FILTER CRITERIA:'分类词汇:机器名称(= [你的词汇名称])'

保存视图

然后在Structure>块,将块放在适当的区域

希望这有助于某人!