【问题标题】: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;博士;

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

谢谢!

【问题讨论】:

  • 我也有同样的问题 - 你最终找到解决方案了吗?

标签: drupal drupal-7 drupal-views


【解决方案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

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

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多