これを理解するのは非常に困難で、それが可能かどうか疑問に思っています。私はオーガニックグループ7.x-2.xを使用しており、2つの「グループ」タイプがあります。学生グループタイプと教員グループタイプです。また、ブログ投稿と呼ばれる「グループコンテンツ」タイプもあり、どちらのグループタイプでも投稿できます。私がやりたいことは、2つのビューを作成することです。1つはすべての学生グループに投稿されたすべてのブログ投稿を表示するビュー、もう1つは教員グループに同じビューを表示するビューです。
これを行う方法について誰かが私に洞察を提供できますか?
補足:OGがエンティティ参照を使用してグループメンバーシップを割り当てるように切り替えたため、ビューでこの関係を使用してこれを達成するのは簡単だと思いましたが、ウィジェットのエンティティ参照のみを使用しているように見えます 通常のエンティティ参照フィールドのようにデータを保存しません 。私がog_membership関係で試みたすべてが失敗したように見えたので、ここで途方に暮れています。何か助けていただければ幸いです!
うわー、私は実際にこれを理解しました。基本的に、次のことを行う必要があります。
より役立つスクリーンショットを次に示します。
ビューGUIを使用してそれを行う方法はわかりませんが、ビューからのクエリをオーバーライドして表示するために使用できる独自のクエリを作成する方法を説明できます。
必要なすべてのデータは2つのテーブルに保存されます
field_data_group_audience.entity_id // node id of the content you are looking for
field_data_group_audience.bundle // type of content in your case blog posts
JOIN
node -> type // equal to student group or faculty group
グループのnidはグループのgidと同じではないため、og tableを使用して2つのテーブルを結合する必要があります
JOIN
og
WHERE
og.etid = node.nid
AND
og.gid = field_data_group_audience.group_audiance_gid
これにより、次のような結果になります。
$query = db_select('field_data_group_audience');
$query->join('og', 'og', 'og.gid = field_data_group_audience.group_audiance_gid');
$query->join('node', 'node', 'og.etid = node.nid');
$query->addfield('field_data_group_audience','entity_id','tricky_name_expected_by_views');
$query->condition('field_data_group_audience.bundle', blog post,'=');
$query->condition('node.type', 'student group','=');
$view->build_info['query'] = $query;
機能するクエリを取得したら、hook_views_pre_executeを使用してビューにプラグインします。 https://drupal.stackexchange.com/a/56322/1215