【发布时间】:2012-03-11 21:03:06
【问题描述】:
我有一个包含许多公开过滤器的视图,我想为作者添加一个公开过滤器,以便用户可以通过节点的创建者来限制节点列表(除了许多其他过滤器)。
到目前为止我做了什么:
我添加了作者的公开过滤器并将运算符设置为“包含任何单词”(因此用户名可以只是一个 + 分隔列表)
- 默认情况下这是一个文本字段,但我希望它显示为复选框列表(类似于分类法)
-
使用 hook_form_alter,我添加了以下代码以将其更改为复选框列表(目前已编码,但我会尽快修复)
$form['name']['#type'] = "select"; $form['name']['#size'] = "3"; $form['name']['#multiple'] = TRUE;
$form['name']['#options'] = array( '管理员' => '管理员', '泰勒' => '泰勒', '测试' => '测试' ); $form['name']['#theme'] = "select_as_checkboxes";
提交此表单后,它会将 url 更改为 &name[]=tyler&name[]=admin,我想做的是将这些与 foreach 结合起来,使 url 看起来像 &name=tyler+admin,但我我真的不确定如何在 API 中实现这一点。
我尝试向 $form['#submit'] 添加一个函数,并更改其中字段的值,但这仍然没有改变输出。
有什么建议吗?
快速编辑
目前我已将其切换为使用收音机而不是复选框,这解决了我遇到的问题。
为了进一步分解我遇到的问题,复选框的名称设置为 name[]= 而不是 name= 因为有多个输入。 Views 中的名称过滤器不知道如何处理名称字段的多个值。
现在我会看看这是否与客户一起飞行,但如果有人对将所有作者的复选框添加到暴露的过滤器的原始问题有答案,那就太棒了!
【问题讨论】:
-
有关类似问题,另请参阅this answer。