Drupal 7 Views将作者列表添加为公开过滤器

时间:2012-02-21 14:43:56

标签: forms drupal views

我有一个带有许多公开过滤器的视图,我想为作者添加一个公开过滤器,以便用户可以通过节点的创建者限制节点列表(除了许多其他过滤器) )。

到目前为止我做了什么:

我添加了一个公开的作者过滤器,并将操作符设置为“包含任何单词”(因此用户名可能只是一个+分隔的列表)

  1. 默认情况下,这是一个文本字段,但我希望它显示为复选框列表(类似于分类法)
  2. 使用hook_form_alter我添加了以下代码,将其更改为复选框列表(暂时已加密,但我很快就会修复)

    $ form ['name'] ['#type'] =“选择”; $ form ['name'] ['#size'] =“3”; $ form ['name'] ['#multiple'] = TRUE;

    $ form ['name'] ['#options'] = array(     'admin'=> “管理员”,     'tyler'=> “泰勒”,     'test'=> '测试' ); $ form ['name'] ['#theme'] =“select_as_checkboxes”;

  3. 当提交此表单时,它将url更改为& name [] = tyler& name [] = admin,我想要做的是将这些与foreach相结合,以便url看起来像& name = tyler + admin,但我真的不确定如何在API中实现这一目标。

    我尝试在$ form ['#submit']中添加一个函数,并在那里更改字段的值,但仍然没有改变输出。

    有什么建议吗?

    快速修改

    目前我已经将其切换为使用无线电而不是复选框,这解决了我遇到的问题。

    为了解决这个问题我还有一点,因为多个输入,所以设置为name [] =而不是name =的复选框的名称。 Views中的名称过滤器不知道如何处理名称字段的多个值。

    现在我将看看这是否与客户端有关,但是如果有人对原始问题的答案,即将所有作者的复选框添加到暴露的过滤器中会很棒!

1 个答案:

答案 0 :(得分:0)

使用Better Exposed Filters模块。