如何通过 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 视图?的主要内容,如果未能解决你的问题,请参考以下文章