Drupal将多选复选到已曝光的视图上的复选框表单不起作用

时间:2017-05-23 17:59:36

标签: drupal drupal-7 views

我需要使用所有分类词汇表进行过滤,而不是一次添加所有分类法。

我使用内容:具有分类术语(多个)过滤器 - 这是一个多选列表。

我需要将选择列表更改为复选框,但是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,但我不知道我需要改变什么。

1 个答案:

答案 0 :(得分:0)

我再次更新我的ans以获得更清晰的观点 第一步暴露过滤器 enter image description here

此设置

enter image description here
点击设置文字然后
enter image description here
那么gf for bef
enter image description here
结果是 enter image description here
希望现在有意义

相关问题