我需要使用所有分类词汇表进行过滤,而不是一次添加所有分类法。
我使用内容:具有分类术语(多个)过滤器 - 这是一个多选列表。
我需要将选择列表更改为复选框,但是BEF不允许我为这种类型的字段执行此操作,因此我执行了以下操作...
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'views_exposed_form') {
$options = $form['filter']['#options'];
unset($form['filter']);
foreach($options as $vocab => $terms) {
foreach ($terms as $key => $value) {
$newkey = $options[$vocab][$key]->option;
$termoptions[$vocab][key($newkey)] = $newkey[key($newkey)];
}
$form[$vocab] = array(
'#type' => 'checkboxes',
'#options' => $termoptions[$vocab],
'#title' => $vocab,
'#multiple' => TRUE,
);
}
}
}
暴露的形式看起来不错,但它不起作用。
我认为是因为查询的名称是错误的。由于我将层次结构拆分为单独的字段,因此该网址看起来像
mysite.com/category?filter [] = 123
现在看起来像......
mysite.com/category?Brand [123] = 123
所以,我有多远,我有什么想法可以使这种暴露形式发挥作用?
我改变了提交处理程序views_exposed_form_submit,但我不知道我需要改变什么。