如何通过 URL 将变量过滤器添加到 Drupal 6 视图?

Posted

技术标签:

【中文标题】如何通过 URL 将变量过滤器添加到 Drupal 6 视图?【英文标题】:How to add variable filters to Drupal 6 views via URL? 【发布时间】:2010-11-05 11:17:53 【问题描述】:

我目前正在使用 Drupal Views 2 来构建自定义视图。到目前为止,如果不需要功能,这可以正常工作:应该能够通过 URL 按不同字段过滤结果,格式如下:

http://domain/node/M/[key]:[value],[key2]:[value2],...,[keyN]:[valueN]

键名是固定的,不能更改。

我尝试挂钩 hook_views_query_alter() 和 hook_views_pre_render() 来概括所有视图,评估给定的过滤器集,但没有令人满意的结果,因为我无法掌握用于构建视图的查询(我无法更改它以正确的方式,因为我不知道查询中的字段名称)。

问题是,是否有更好的方法来实现这样的过滤器集。

提前致谢,

弗洛

【问题讨论】:

我能够通过 drupals arg() 获取过滤器变量 - 问题是我不知道如何用它们的值影响视图:( 如果您使用的是视图 UI,那么您可以添加参数。 是的,但是如何?我怎样才能获得接受这种特定形式的 url 参数的视图? 【参考方案1】:

查看 cmets,您似乎不仅需要 url 参数,还需要自定义格式的 url 参数。

我首先会敦促您放弃格式并使用标准视图参数格式,这将更加符合标准并为您省去很多麻烦。

如果您想使用这种特殊格式,您将不得不在模块中编写一些自定义代码。

使用 hook_menu() 注册回调。

在该回调中使用 arg() 并解码您的参数。

将参数传递给views_embed_view()。如图here

【讨论】:

感谢您的建议,但轮到我决定 url 的格式 :(

以上是关于如何通过 URL 将变量过滤器添加到 Drupal 6 视图?的主要内容,如果未能解决你的问题,请参考以下文章

在 Drupal 7 中,如何使用“搜索视图”模块将搜索词过滤器添加到我的视图中?

使用ajax将参数发送到drupal视图

Drupal 视图 - 根据 URL 过滤内容

Drupal 7:以编程方式将过滤器添加到视图中

Drupal 7 添加 PHP 到视图过滤器

如何在 Drupal 7 中的 URL 中获取视图(上下文过滤器)中的结果