如何使用基本页面的别名作为上下文过滤器
Posted
技术标签:
【中文标题】如何使用基本页面的别名作为上下文过滤器【英文标题】:How to use a basic page's alias as a contextual filter 【发布时间】:2012-04-18 20:12:44 【问题描述】:我有一个名为 Kids 的基本页面,其别名路径为:example.com/kids
我还有一个名为 Resources 的内容类型,它有标签。
我想创建一个块来获取所有 Resources 标记为“kids”或任何基本页面别名的块。我不想为每个基本页面创建一个带有硬编码过滤器的块。
我创建了一个视图,并将上下文过滤器设置为 URL 的第一个参数,希望它是基本页面的别名。不幸的是,这不起作用,因为上下文过滤器似乎在别名之后开始。
example.com/kids
不返回任何结果。
example.com/kids/kids
按照我的意愿行事,并返回所有带有孩子标签的资源。但是,如果我创建嵌套在 Kids 下的第二个基本页面,它将停止工作,因为 kids/kids
现在是一个有效的别名路径,因此上下文过滤器会忽略它。
tl;博士;
是否有任何模块或方法可以使用基本页面的别名作为上下文过滤器?
谢谢!
【问题讨论】:
我也有同样的问题 - 你最终找到解决方案了吗? 【参考方案1】:在上下文过滤器设置中,您可以选择在未通过时设置默认值(这就是您的别名所发生的情况)。然后,您可以编写一些 php 来返回页面别名的最后一部分。
类似的东西:
return array_pop(explode('/',drupal_get_path_alias()));
所以现在当您转到“example.com/kids”时,上下文过滤器将包含参数“kids”。
别名路径“example.com/kids/kids”也是如此。
【讨论】:
【参考方案2】:即使我曾经遇到过同样的问题。 这就是我所做的。
创建了一个名为 X 的回调 / 菜单,并将其传递给 X/A 之类的菜单,其中 A 是您的案例中的参数“孩子”。 现在使用 URL 别名,将此 URL 重写为 X/A 到 A
这种方式对我来说完美无缺并且仍然有效。
【讨论】:
以上是关于如何使用基本页面的别名作为上下文过滤器的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有面板的Views Drupal 7中将组ID作为上下文