[Drupal7]複数のタグで検索可能なフォームを設置する


実装したい機能

・タクソノミーのタームをチェック項目として配置し、複数のタグ検索が可能
・ヘッダーにフォームを設置し、サイト内全てのページから検索が可能

Viewsでページを作成する

1) + Add new view
2) View name [Taxonomy Sort] -> Create a page : on / Create a block : off -> Continue & edit
3) フォーマット、FIELDSはお好みで設定
4) FILTER CRITERIA -> Add 検索に利用したいタクソノミーのフィールドを選択

5) Expose this filter to visitors, to allow them to change it にチェック
6) Filter type to expose -> Grouped filters
7) ターム名をラベルにしてVALUEで同じものを選択

ブロックでフォームを独立して表示する

1) 先ほど作成したViewsの設定
EXPOSED FORM -> Exposed form in block を「はい」に
Exposed form style -> 基本 リセットボタンの表示などここで設定
OTHER -> Machine Name 名前をつける(ここでは[taxsort])
2) Blockモジュールの設定
先ほど保存したViewsが[Exposed form: sort-taxsort]として表示されるので、表示させたいブロックを選択

Grouped filtersチェック時にAllow multiple selectionsを選択するとラジオボタンにならない

Views -> Configure filter criterion
Filter type to expose : Grouped filtersを選択
Allow multiple selectionsを選択
....ウィジェットタイプをRadiosにしてもセレクトタイプで表示されるよ!の問題解決

/modules/views/handlers/views_handler_filter.inc LINE748

$form[$value]['#type'] = 'select';
を以下に変更
$form[$value]['#type'] = 'checkboxes';

※参考
https://drupal.stackexchange.com/questions/84617/views-grouped-filters-turns-radiobuttons-into-select