私のクライアントは私に単一のフィールドを要求しました、それは2つの方法で機能します:
そうすれば、ユーザーがカテゴリ名を入力すると、手で選択されたノードが一覧表示されます。それ以外の場合は、少なくともいくつかのコンテンツが表示されます。
別に、それは簡単です。しかし、これらの動作を1つのフィールドに組み合わせるにはどうすればよいでしょうか。
Finder モジュールは要件を正確に実行します。分類の用語だけでなく、ノードのタイトル、本文、フィールドなどを選択して、検索を実行できます。
Finderの機能を組み合わせて、必要な種類の検索フォームを取得する方法はたくさんあります。 Finderの出力の完全なカスタマイズを可能にする多くのフックとテーマ関数もあります。
次の目的で使用されます。
As a search tool to find a group of nodes or users.
As a way to navigate to a specific node or user page that matches criteria.
As an alternative to exposed filters for a Views module display.
以下のスクリーンショットを参照してください。Finderフィールドでは、分類用語とノード本体を選択して、オートコンプリートの公開フィールドで検索を実行できます。コンマで区切られた複数のキーワード検索を実行できます。詳細は Finderのドキュメント を参照してください。
要素を追加したら、リストからFinder fieldsを選択できます。
分類用語およびノードを選択するCtrlキー:ノード:ボディ
私はテストせずに書いていますが、少なくとも出発点としてそれを使用できると感じています。
Views Field View モジュールを使用すると、ビューを別のビューに埋め込むことができ、コンテキストフィルターを埋め込みビューに渡すこともできます。
あなたの場合、与えられたフィルターを検索するコンテキストフィルターを持つ別のビューを作成します。その点については、コンテキストフィルターで検索できるかどうかはわかりませんが、「検索:用語」などのオプションをいくつか見ました。
そうは言っても、この最初のステップをとにかく達成できれば、残りは比較的簡単です。
元のビューで、詳細オプションセクションの下に「結果の動作なし」を追加し、「グローバル:ビュー(ビューフィールドビュー)」を追加して、以前に作成したビューを選択し、公開されたフィルターのトークンを埋め込みビューに対するコンテキストフィルター(置換パターンのリストでトークンを見つけることができます)。
上記のディスカッションを終えましたが、おそらく以下のシナリオで、「公開されたビューとフィルターを組み合わせる方法」という投稿に対処できます。実装には、カスタムコーディングが必要です。
form_id = 'sns_studio_form_filter'
)。カスタムフォーム送信ハンドラーでは、カスタムフォームのフィールドから情報を取得し、手順6でメモしたのと同じようなURLを生成します。最後に、そのURLにリダイレクトします。送信ハンドラでは、次のようになります::
$form_state ['redirect'] = array(
$path,
array(
'query' => $params // $params is the url
)
);
drupal_redirect_form( $form_state );
したがって、ステップ7が実行されると、すべてのビューブロックが、設定したフィルター基準に基づいてフィルターされます。
それが役に立てば幸い。
それを行う別の方法もあります: Concat Field モジュールを試すことができます。基本的にはフィールドをコンテンツタイプに追加し、このフィールドによるフィルターを検索として使用できます。
Finderとよく似ていると思いますが、言及する価値はあります。