0

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

1) SHAPES

Triangle

Square

Rectangle

2) COLOR

Red 

Blue 

Green

我通过 Structure > Taxonomy > Vocabulary > Add Term 创建了两组标签

对于视图,我创建了一个带有两个暴露过滤器的视图(类似于本教程中所做的)

看法:

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

暴露的过滤器在结构 > 块中设置为适当的块区域。

如果我单击“三角形”,则只应显示带有“三角形”标签的博客文章。然后,如果我单击“红色”,则只会显示带有“红色”标签的帖子。

当我单击条款时,似乎正在显示正确的博客文章。URL 附加了两个词汇表的 ID,但我似乎无法显示正确的组合。

单击“三角形”时所需的 URL:“/blog/tag/?shape_id=1&color_id=All”

单击“红色”时所需的 URL:“/blog/tag/?shape_id=All&color_id=1”

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

但是,它当前的工作方式是,如果我单击“三角形”,然后单击“红色”,则“三角形”和“红色”都有“选定”类(都是粗体),并且 url 是:'/blog/标签/?shape_id=1&color_id=1'

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

如果没有在术语列表中列出“-Any-”,这甚至可能吗?我以前从未使用过多个暴露的过滤器,所以任何指导都会很棒,因为我已经研究了将近一周。我在另一篇文章中读到上下文过滤器将允许我创建单独的路径别名,这些别名是干净的 url,但我还没有成功地做到这一点。

任何帮助将不胜感激。感谢您的时间。

4

1 回答 1

0

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

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

2) FORMAT: '无格式列表' SHOW: 'Fields'

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

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

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

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

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

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

选择“指定验证标准”

验证器下拉菜单,选择“分类术语”

词汇:选择适当的词汇名称

筛选值类型下拉列表:“术语名称转换为术语 ID”

选择“将 URL 中的破折号转换为术语名称过滤值中的空格”

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

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

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

我之前为分类术语路径设置了 URL 别名,所以我删除了这些

此外,我必须单独返回我的分类术语并删除从模式生成的 URL 别名

为了让标签列表显示在右侧,所需的 URL 结构为 /blog/[YOUR VOCABULARY NAME]/[YOUR TERM NAME],我创建了一个单独的新视图:

显示:“[您的词汇名称]”类型的“分类术语”

创建块

“字段”的“未格式化列表”

字段:“分类:术语名称”> 单击此选项并取消选择“将此字段链接到其分类术语页面”。然后展开“重写结果”部分并在链接路径中选择“将此字段作为链接输出”>:'blog/[YOUR VOCABULARY NAME]/[name]'(应该出现 url 结构末尾的 [name]正如您在方括号中看到的那样)> 选择“用破折号替换空格”> 将大小写转换为“小写”> 单击应用

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

保存视图

然后在结构>块中,将块放置在适当的区域

希望这对某人有帮助!

于 2015-03-18T20:21:14.533 回答