グループに属しているこのノードがあり、そのノードのグループIDを取得して印刷したいのですが、$node->nid;
のようなものですが、グループIDが含まれています。
それは可能ですか?
グループコンテンツとグループの関係は、メンバーシップ関係を介して行われます。グループコンテンツが複数のグループのメンバーである可能性があるため、次のコードはグループのリストを取得します。
$groups = og_get_entity_groups('node', $node);
これは、キーとしてグループentity_types、値としてメンバーシップを持つ多次元配列です。各メンバーシップは、キーとしてメンバーシップIDを持ち、値としてグループのエンティティIDを持つ配列です。したがって、グループコンテンツノードから、使用するすべてのグループの親に移動するには...
foreach (og_get_entity_groups('node', $node) as $entity_type => $og_memberships) {
foreach ($og_memberships as $membership_id => $entity_id) {
if ($entity_type == 'node') {
// Assuming we only want to deal with node groups, we can
// access the group node with...
$group_node = node_load($entity_id);
}
}
}
私はこれを昨夜必要としました。次のようにしましたか:
$node = node_load($nid);
$og_id = current($node->og_groups)
$ og_groupsには、投稿がメンバーとなっているすべてのOGの配列が含まれます。あなたはそれらすべてをforeachで得ることができます。それらにアクセスするためのキーはnidです。
$og_groups=array(5=>5, 15=>15);
お役に立てば幸いです。
og(organic groups)
モジュールは、group
またはentity refrence
にするコンテンツタイプにgroup content
フィールドを追加します。デフォルトではフィールド名はog_group_ref
ですが、別の名前に変更されている可能性があります。 ogフィールド名を正確に検索する場合は、コンテンツタイプの管理フィールドを参照してください(対象の記事のコンテンツタイプを想定します)admin/structure/types/manage/article/fields
。
Pick up groupフィールドマシン名(og_group_ref
のようなもの)。
あなたはこのようなことができます:
$node=node_load($nid);
$ogId=$node->og_group_ref['und'][0]['target_id'];
Gidを調べて、次のような$ nodeオブジェクト全体を印刷してみてください。
print_r($ node);
何らかの理由Drupal回答ではphpタグに何も表示されませんが、出力を読みやすくするには、phpをpreでラップする必要があります。
Ctrl + Fを試して、数値が出力される場所を見つけます。次に、$ nodeが使用可能になったときに、配列/オブジェクトの形式に従って出力します。