Bagaimana saya bisa mendapatkan ID grup suatu simpul?

9

Saya memiliki simpul ini yang merupakan milik grup, dan saya ingin mendapatkan ID grup dari simpul itu, untuk mencetaknya, seperti $node->nid;tetapi dengan id grup.

Apakah itu mungkin?

Rosamunda
sumber

Jawaban:

11

Hubungan antara konten grup dan grup adalah melalui hubungan keanggotaan. Karena dimungkinkan untuk konten grup menjadi anggota beberapa grup maka kode berikut akan mengambil daftar grup:

$groups = og_get_entity_groups('node', $node);

Ini adalah array multidimensi dengan entitas entitas_types sebagai kunci dan keanggotaan sebagai nilainya. Setiap keanggotaan adalah array dengan id keanggotaan saat mereka kunci dan kemudian id entitas grup sebagai nilainya. Jadi untuk beralih dari simpul konten grup, ke semua orang tua grup yang akan Anda gunakan ...

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);          
    }
  }
}
John
sumber
Hai, bisakah Anda memberi tahu cara melakukan ini, jika saya menggunakan modul Grup bersama dengan Drupal 7? Saya tidak menemukan jawaban
badiya
4

Saya membutuhkan ini tadi malam. Apakah itu seperti ini:

$node = node_load($nid);
$og_id = current($node->og_groups)

$ og_groups berisi larik semua OG yang menjadi anggota. Anda bisa mendapatkannya dengan foreach. Kunci untuk mengaksesnya adalah nid.

$og_groups=array(5=>5, 15=>15); 

Semoga itu bisa membantu.

RubenVarela
sumber
3

The og(organic groups)modul add entity refrencelapangan untuk jenis konten yang Anda inginkan menjadi groupatau menjadi group content. secara default nama isian adalah og_group_reftetapi mungkin itu berubah ke nama lain. Jika Anda ingin mengetahui dengan tepat nama bidang, silakan lihat bidang pengelolaan jenis konten Anda (misalkan jenis konten artikel yang Anda pertimbangkan) admin/structure/types/manage/article/fields.
Ambil bidang grup NAMA MESIN (ada yang mirip og_group_ref).

Anda dapat sesuatu seperti ini:

$node=node_load($nid);
$ogId=$node->og_group_ref['und'][0]['target_id'];
Yusef
sumber
2

Cari tahu gid lalu coba cetak seluruh objek $ node, seperti:

  print_r ($ node);  

Beberapa alasan jawaban Drupal tidak akan menampilkan apa pun di tag php, tetapi Anda harus membungkus php terlebih dahulu untuk membuat output lebih mudah dibaca.

Coba ctrl + F dan temukan di mana nomor tersebut dikeluarkan. Anda kemudian dapat mengikuti format array / objek untuk mencetaknya ketika $ node tersedia.

WestieUK
sumber