【发布时间】:2009-03-30 15:34:26
【问题描述】:
我在一个页面(称为“信息”页面)上有四个块视图,它们按邻近度过滤,为我提供与一个特定过滤位置相关的四条信息。
我希望能够创建一个带有暴露邻近过滤器的介绍页面,执行该过滤器时会带我到(信息)页面,并同时过滤四个视图,其中输入在介绍页面上的接近度。
我该怎么做?我是 php 新手,但正在学习....愿意努力工作!
谢谢
【问题讨论】:
我在一个页面(称为“信息”页面)上有四个块视图,它们按邻近度过滤,为我提供与一个特定过滤位置相关的四条信息。
我希望能够创建一个带有暴露邻近过滤器的介绍页面,执行该过滤器时会带我到(信息)页面,并同时过滤四个视图,其中输入在介绍页面上的接近度。
我该怎么做?我是 php 新手,但正在学习....愿意努力工作!
谢谢
【问题讨论】:
如果您在 Drupal 6 中使用视图,答案是肯定的——但有一些重要的注意事项。
与 Drupal 中的普通表单不同,视图的公开过滤器值以 $_GET 参数而不是 $_POST 的形式出现。这意味着您可以通过将 ?filter=value&filter2=value2 等附加到当前 URL 来填充公开的过滤器。
关键在于,如果同一页面上的多个视图在 URL 中查找相同的过滤器键,它们都将使用传入的过滤器值。您需要配置每个视图的公开过滤器列表,以确保它们都使用相同的过滤器列表,并为传入值使用相同的“键”列表。如果您希望过滤器表单只出现一次,您可能还需要进行一些巧妙的处理——默认情况下,视图会希望它出现在每个视图上,但是每个视图都有一个选项可以将其暴露的过滤器移动到一个块中;这样做并且不启用暴露的过滤器块会有效地隐藏视图的暴露过滤器小部件,同时在通过 URL 进入时保持过滤处于活动状态。
总结一下:确保所有四个视图都有相同的公开过滤器列表,并且对过滤器使用相同的“键”。隐藏除一个视图之外的所有视图上暴露的过滤器小部件。到那时,它应该可以工作了。
【讨论】: