数あるCMSの中でdrupalを選んで良かったと感じている今日この頃(他のを試したわけではないですが)。
さて、表題の通りコンテンツの抽出・表示に関して質問があります。
現在あるコンテンツタイプではその分類・関連づけにNodereferenceを利用しております。
例えばNode:Aというノードをnode:a-1, node:a-2, node:a-3というノードが参照しています。
同じくNode:Bというノードをnode:b-1, node:b-2, node:b-3というノードが参照しています。
さらにNode:Cというノードをnode:c-1, node:c-2, node:c-3というノードが参照しています。
taxonomyでいう、termとnodeの関係みたいなものでしょうか。
こういう構成の中から、viewsを利用して
Views Result
node:a-1
node:b-1
node:c-1
という結果を得たい、すなわち参照されるノードごとに、参照しているノードを一件ずつ表示したい(抽出法はviewsのSort criteriaで制御)と考えております。
Viewsの設定で"items to display"を1にすると本当に一件のみ表示され、そりゃそうだなと納得したりして、実現に至っておりません。
taxonomyを利用した例ですが、以下のページ
http://stackoverflow.com/questions/2638234/drupal-views-display-newest-c...
に、私と同じ質問とそれに対する回答があり、『termの数だけviewsのdisplayを用意せよ』的なアドバイスがなされており、
確かに可能だけど、さすがに現実的でないなと感じています。
一見するとviewsの操作のみで可能と思えるのに、やってみると上手くいかず手詰まりの状態です。
何かいい方法はないものでしょうか。よろしくお願いします。
Comments
解決しました。
お騒がせして申し訳ありません。自分でコードを書いたりするのは無理なので、
カスタムモジュールを導入することにより、検証は不十分ですが、ひとまず解決しました。
利用したのはviewfieldというモジュールです。
予めviewsにて一つの結果を返すビューを作成しておき、その結果をこのモジュールで親ノードに保存。
そして親ノードの一覧を表示するビューを作成し、表示するフィールドとして選択、という再帰的な方法です。
内部の処理としてはviewsのdisplayを多数用意するのと変わらないのかな?と思いますが、
手間が省けて助かりました。
子ノードに変更が加わっても大丈夫そうなので、私の要求は全て満たしてくれそうです。
どなたかの参考になれば幸いです。