あるページに設定したタクソノミータームで作ったカテゴリと同じカテゴリのコンテンツをそのページに表示したいです。

Events happening in the community are now at Drupal community events on www.drupal.org.
nozomu_takama's picture

DRUPAL初心者です。
自分のマシンにDRUPAL8をインストールし、現在、WEBページをDRUPAL8で構成しています。
そこでわからない事があり、WEBで調べているうちに、このサイトにたどり着きました。
ある事でハマってしまっており、非常に困っています。

大変申し訳ありませんが、教えて頂けるとありがたいです。

実際にやりたい事は・・・


タクソノミータームを使用してカテゴライズしたもの。
例えばボキャブラリー”食品カテゴリ”、タームは”生鮮食品”、”果物”、”菓子”
と設定したとします。
(タクソノミータームは実際には階層化しています。
”菓子”の下に”スナック類”等があります。)

表示するページの設定についてですが、
コンテンツタイプは、
”売り場”(BASICページ)
で、実際のコンテンツとしては”生鮮食品コーナー”、”ギフトコーナー”を作成します。

また、もう一つのコンテンツタイプは
”食品”で、実際のコンテンツは”みかん”、”せんべい”です。
(このコンテンツタイプには”概要””品目””値段”等のフィールドがあります。)

”売り場”のコンテンツタイプには、”食品カテゴリ”が付与されます。
実際のコンテンツ”ギフトコーナー”に”果実”、”菓子”のカテゴリとします。

また、”食品”のコンテンツタイプにも、同じ”食品カテゴリ”を付与します。
実際のコンテンツ ”みかん”にはカテゴリ”果物”、コンテンツ”せんべい”にはカテゴリ”菓子”を付与します。

ここで、”ギフトコーナー”のコンテンツを開くと、
ギフトコーナーのカテゴリに分類された”果物”、”菓子”と同じ、”果物”、”菓子”に
分類されている。”みかん”と”せんべい”を表示させたいです。

しかし、現実では・・・


実際に、”売り場””食品”コンテンツタイプに、タクソノミー”食品カテゴリ”は関連ついています。
”売り場”のコンテンツタイプの”ギフトコーナー”にブロックを配置する形にしたいと思い、ブロックビューを作成し、そこで”食品コンテンツ”を表示させようとしているのですが、うまくいきません。

現在はブロックビュー以下のような設定にしています。

フィルター条件:
 コンテンツ:コンテンツタイプ(=食品)
 →この設定で、”売り場”の表示を抑止します。
リレーションシップ:
 ノードのタクソノミーターム
 (入力したあとの表示は「ノード」となります。)
コンテクスチュアルフィルター:
 タクソノミータームIDを含む

しかし実際には「フィルター値が利用可能でない場合」
 ・指定されたフィールドの結果をすべて表示する。
 →すべての食品”みかん”と”せんべい”が表示されてしまう。
 ・”結果がありません”の内容を表示
 →すべての食品が表示されない。

となってしまっており、実際にコンテクスチュアルフィルターがかかっていないようです。

どなたかわかる方いらっしゃいましたら、教えていただきたいと思います。

よろしくお願いいたします。

Comments

何かのヒントになれば

Tomotsugu Kaneko's picture

多分引っかかられている問題はViewsのあるあるだと思うのですが、テキストのやりとりだけでは回答に限界があるかもしれません。なので、気になったポイントだけ回答します。

  1. ViewsのUIを通じてDBへどのようなクエリが投げられているか確認することで設定が正しいか確認できる可能性があります。8 - How do I print the SQL query of a view in front end? - Drupal Answers
  2. 売り場はコンテンツタイプとしてノードを作成せずTaxonomyで処理してはどうでしょう

twitter: @snize

nozomu_takama's picture

Tomotsugu Kanekoさん!回答ありがとうございます!

1.の件
 一応SQLの表示はしてみましたが。。。SQLでこうして欲しいのに、設定画面をいじって、どうやって値をひっぱってくれば良いのかわからず・・・
2.の件
 売り場をコンテンツタイプにしてTaxonomyで処理した場合に、タクソノミーにした、例えば”菓子”を売っている売り場の一覧が、”ギフトコーナー”がコンテンツの形で出力される形になると思うのですが。。。私の認識が違うでしょうか。(すみません、本当に初心者なもので。。。)しかも、表示形式をテーブルにしたかったので。。。

結局、以下の方法を取る事にしました。

1.”食品”のコンテンツタイプにも、”食品カテゴリ”を付与します。
実際のコンテンツ ”みかん”にはカテゴリ”果物”、コンテンツ”せんべい”にはカテゴリ”菓子”を付与します。
2.ビューズから”売り場”のPAGEを売り場毎に作成します。ここでは”ギフトコーナー”ページ
3.このパージの
高度な設定-
コンテクスチュアルフィルター→コンテンツ: タクソノミータームIDを含む
リレーションシップ→ノード
普通の設定の部分で
フィールド → コンテンツ: すべてのタクソノミーターム (カテゴリ)
フィルター条件 → コンテンツ: タクソノミータームを持つ(階層指定あり) (= 果物)
にしました。

すると、”ギフトコーナー”に果物配下の階層の食品の一覧、例えば”みかん”が表示されるようになりました。

現在はこれをテーブルで表示しています。

drupal8は難しいですね。
コメント頂いて本当にありがとうございます!

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: