2013-08-29 49 views

回答

2

您需要查看hook_views_pre_render()。首先将它与来自devel模块的dpm()一起使用,以探索视图结构。然后你可以直接改变视图(及其过滤器),然后再发送它们进行渲染。我会推荐使用php函数,比如array_unique()或者你自己的自定义函数来遍历和uniquefy你的结果。

mymodule_views_pre_render(&$view) { 
    // make sure devel module is turned on first, then take this out when you're 
    // done exploring the view results 
    dpm($view); 
    // this part is pseudocode, I haven't memorized the view structure, but dpm() will 
    // show you what to actually put here 
    if($view->name == "my_target_view_machine_name") { 
    // do your uniquefying here 
    } 
} 
+0

我希望Drupal能给我一些开箱即用的东西,否则会有另一个模块可以使用。我想避免编写代码。不过,我认为在没有这些选择的情况下,你的答案与我将要得到的答案一样。非常感谢。 – PrestonDocks

1

当向视图添加一个公开的过滤器时,drupal为您提供了两个选项(过滤器类型公开):单过滤器和分组过滤器,如果您选择分组过滤器,它会让您选择想要的类型的小部件。 (收音机/精选)

+1

我发现分组选项不像它看起来那么完美。术语分组让我觉​​得它会将该字段中的数据分组,并显示可以选择用于过滤的唯一值,但事实并非如此。它提供的功能是提供您自己的数值,但是如果数据发生变化,您将继续进入视图并手动添加希望用户可以从中进行选择的新值。 – PrestonDocks

+0

我怎么错过了?这正是我需要使用数字范围字段模块来轻松提供从下拉列表中选择“适应睡眠”范围的选项。 – Victoria

相关问题