如何使用基本页面的别名作为上下文过滤器

时间:2012-04-18 20:12:44

标签: drupal drupal-7 drupal-views

我有一个名为 Kids 的基本页面,其别名路径为:example.com/kids

我还有一个名为 Resources 的内容类型,它有标签。

我想创建一个块,它可以获取带有“kids”标签的所有 Resources 或基本页面的别名。我不想为每个基本页面创建一个带有硬编码过滤器的块。

我创建了一个视图,并将上下文过滤器设置为URL的第一个参数,期望它是基本页面的别名。不幸的是,这不起作用,因为上下文过滤器似乎在别名之后开始。

example.com/kids不会返回任何结果。

example.com/kids/kids表现我的意思,并返回所有标记为孩子的资源。但是,如果我创建嵌套在Kids下的第二个基本页面,它将停止工作,因为kids/kids现在是一个有效的别名路径,因此上下文过滤器会忽略它。

TL;博士;

是否有任何模块或方法使用基本页面的别名作为上下文过滤器?

谢谢!

2 个答案:

答案 0 :(得分:1)

在上下文过滤器设置中,您可以选择在未传递一个时设置默认值(这是您的别名发生的情况)。然后,您可以编写一些返回页面别名的最后部分的PHP。

类似于:

return array_pop(explode('/',drupal_get_path_alias()));

现在,当您转到“example.com/kids”时,上下文过滤器将使用“kids”参数。

对于别名路径“example.com/kids/kids”也是如此。

答案 1 :(得分:0)

即使我曾经遇到同样的问题。 这就是我所做的。

创建了一个名为X的回调/菜单,并将其传递到X / A这样的菜单,其中A是您孩子的参数“kids”。 现在使用URL别名,将此URL重写为X / A到A

这种方式对我来说完美无缺,仍然有效。