4

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

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

我想创建一个块来获取所有带有标签“孩子”或任何基本页面别名的资源。我不想为每个基本页面创建一个带有硬编码过滤器的块。

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

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

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

tl;博士;

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

谢谢!

4

2 回答 2

1

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

类似于:

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

因此,现在当您访问“example.com/kids”时,上下文过滤器将包含“kids”参数。

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

于 2012-09-27T21:03:34.147 回答
0

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

制作了一个名为 X 的回调 / 菜单,并将其传递给 X/A 之类的菜单,其中 A 是您的案例中的参数“孩子”。现在使用 URL 别名,将此 URL 重写为 X/A 到 A

这种方式它完美地为我工作,并且仍然有效。

于 2012-08-24T11:27:21.417 回答