ฉันจะรับ ID กลุ่มของโหนดได้อย่างไร


9

ฉันมีโหนดนี้ที่เป็นของกลุ่มและฉันต้องการได้รับ ID กลุ่มของโหนดนั้นเพื่อพิมพ์สิ่งที่ชอบ$node->nid;แต่มีกลุ่ม ID

เป็นไปได้ไหม

คำตอบ:


11

ความสัมพันธ์ระหว่างเนื้อหาของกลุ่มและกลุ่มผ่านความสัมพันธ์เป็นสมาชิก เนื่องจากเป็นไปได้ที่เนื้อหากลุ่มจะเป็นสมาชิกของหลายกลุ่มดังนั้นรหัสต่อไปนี้จะดึงรายการของกลุ่ม:

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

นี่คืออาร์เรย์หลายมิติที่มีกลุ่ม entity_types เป็นคีย์และการเป็นสมาชิกเป็นค่า การเป็นสมาชิกแต่ละครั้งจะเป็นอาร์เรย์ที่มีรหัสสมาชิกในขณะที่คีย์และจากนั้นรหัสเอนทิตีของกลุ่มเป็นค่า ดังนั้นไปจากโหนดเนื้อหากลุ่มทั้งหมดเป็นผู้ปกครองกลุ่มคุณจะใช้ ...

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);          
    }
  }
}

สวัสดีคุณช่วยบอกวิธีการทำสิ่งนี้ได้ไหมถ้าฉันใช้โมดูล Group พร้อมกับ Drupal 7 ฉันไม่พบคำตอบ
badiya

4

เมื่อคืนนี้ฉันต้องการ ทำเช่นนี้:

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

$ og_groups มีอาร์เรย์ของ OG ทั้งหมดที่โพสต์เป็นสมาชิกอยู่ คุณสามารถรับพวกเขาทั้งหมดด้วย foreach กุญแจสำคัญในการเข้าถึงพวกเขาคือหมายเลข

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

หวังว่าจะช่วย


3

og(organic groups)โมดูลเพิ่มentity refrenceฟิลด์ประเภทเนื้อหาที่คุณต้องการจะเป็นหรือจะเป็นgroup group contentโดยชื่อเขตข้อมูลเริ่มต้นคือog_group_refแต่มันอาจเปลี่ยนเป็นชื่ออื่น หากคุณต้องการ exactlly หาชื่อฟิลด์และโปรดดูประเภทเนื้อหาของคุณจัดการข้อมูล admin/structure/types/manage/article/fields(ช่วยให้คิดว่าชนิดของเนื้อหาบทความการพิจารณาของคุณ)
หยิบชื่อเขตข้อมูลชื่อ เครื่อง (บางอย่างชอบog_group_ref)

คุณสามารถทำอะไรเช่นนี้:

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

2

ค้นหา gid จากนั้นลองพิมพ์วัตถุ $ node ทั้งหมดเช่น:

  print_r ($ โหนด);  

เหตุผลบางอย่างคำตอบของ Drupal จะไม่แสดงอะไรในแท็ก php แต่คุณควรใช้คำสั่ง php เพื่อทำให้เอาต์พุตอ่านได้ง่ายขึ้น

ลอง ctrl + F แล้วค้นหาว่ามีการแสดงหมายเลขใด จากนั้นคุณสามารถทำตามรูปแบบของอาร์เรย์ / วัตถุเพื่อพิมพ์เมื่อ $ node พร้อมใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.