web-dev-qa-db-ja.com

親と子の分類用語を表示するにはどうすればよいですか?

私はこのような語彙を持っています:

  • 親1
    • 子供1
    • 子供2
    • 子供3
  • 親2
    • 子供1
    • 子供2

ここで、ビューを使用して、子用語を含む親用語のリストを作成したいと思います。私はビューUIでこれを実行しようとしていますが、親という用語のみを表示しています...子の用語はありません。それは私にとって非常に混乱しています。

誰でもこのケースを手伝ってくれる?ありがとう

ビューはこれを行うことができます。ビューはSQL検索用のUIであるため、コンテンツデータベースで作成されるクエリの定義を設定します。

  1. この行に沿ってパスが構成されたページを含む分類用語を表示するビューを作成しますcategory/%%は、この形式に一致するURLに適用された値にビューが応答するようにするワイルドカードです。

  2. ディスプレイと必要なフィルターをセットアップします。

  3. 関係(ビューUIページの3列目)を定義し、分類用語:親に設定します。これは、検索された各分類用語の親フィールドを表示するようにビューに指示します。 (Drupalには、その親を識別する各用語のフィールドが含まれますが、兄弟や子は含まれません)。

  4. 次に、ビューのパスで使用したURLからワイルドカードを解釈するようにビューに指示します。コンテキスト関係フィルター(関係選択の上)を定義し、それを分類基準:用語IDに設定します。フォームのドロップダウンボックスで、親との関係を設定します。これは、URLで呼び出されている用語が検索されるときに、分類用語の「親」フィールドのフィルターとして適用されることをビューに伝えます。

  5. 最後に、コンテキストフィルターの絞り込みを完了する必要があります。必要に応じてフォームのそのセクションで回答が見つからない場合の対処方法をビューに伝えることができますが、クエリで解決策が見つかった場合に対処方法を指示する必要があります。これを行うには、検証チェックボックスをオンにします。バリデーターを分類用語に設定し、階層に適用される語彙を選択します。次に、用語IDまたは用語IDに変換された用語名をフィルター値タイプとして選択します。 %で渡す値が用語IDの場合は、これで完了です。渡された値が用語の名前である場合、ダッシュをスペースに変換するためにボックスをチェックすることができます。複数のWord用語名がある場合、URLにはダッシュが含まれ、用語名の実際のスペースと一致しません。この小さな修正により、彼らは同意し、テストは成功します。

  6. 最後にプレビュー領域に移動し、子供がいることがわかっている用語の名前またはIDを入力すると、子供用語のリストが表示されます。並べ替え設定を使用して、必要な順序で並べ替えます。

幸運を!

14
Ashlar

私もこの使用ビューをアーカイブしていますが、少し異なる方法でAshlarを比較してください。

  1. コンテキストフィルターに分類用語:用語IDを追加します。
  2. RELATIONSHIPSに分類用語:親用語を追加します。 ([この関係を要求する]をオフのままにします。)
  3. フィルターセクションに分類用語:親用語を追加します。 より大きいを選択します。
  4. mycase Taxonomy vocabulary:Machine name(= Business Directory)で分類用語をフィルタリングすることを忘れないでください。

  5. 分類用語を追加:レンダリングされた分類用語をフィールドに追加し、parentへの関係を選択し、[表示から除外]をオンにします。

  6. 設定のFORMATセクション。グループ化フィールド1で(親)分類用語:レンダリングされた分類用語を選択します。

あなたは行ってもいいはずです。ビューtplを使用して、グループにクラスベースを追加できます。参照用にスクリーンショットを同封しました。私の英語でごめんなさい。

enter image description here

8
louieliu

そのビューをフィールドとして使用する場合は、ビューを使用せずに Taxonomy Term Reference Filter by Views モジュールを使用してそのようなリストを作成し、親を指定して、リストを自動的にフィルタリングされます。

0
kenorb