我有一个带有许多公开过滤器的视图,我想为作者添加一个公开过滤器,以便用户可以通过节点的创建者限制节点列表(除了许多其他过滤器) )。
到目前为止我做了什么:
我添加了一个公开的作者过滤器,并将操作符设置为“包含任何单词”(因此用户名可能只是一个+分隔的列表)
使用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”;
当提交此表单时,它将url更改为& name [] = tyler& name [] = admin,我想要做的是将这些与foreach相结合,以便url看起来像& name = tyler + admin,但我真的不确定如何在API中实现这一目标。
我尝试在$ form ['#submit']中添加一个函数,并在那里更改字段的值,但仍然没有改变输出。
有什么建议吗?
快速修改
目前我已经将其切换为使用无线电而不是复选框,这解决了我遇到的问题。
为了解决这个问题我还有一点,因为多个输入,所以设置为name [] =而不是name =的复选框的名称。 Views中的名称过滤器不知道如何处理名称字段的多个值。
现在我将看看这是否与客户端有关,但是如果有人对原始问题的答案,即将所有作者的复选框添加到暴露的过滤器中会很棒!