Làm thế nào tôi có thể nhận được ID nhóm của một nút?


9

Tôi có nút này thuộc về một nhóm và tôi muốn lấy ID nhóm của nút đó, để in nó, một cái gì đó giống như $node->nid;nhưng với id nhóm.

Điều đó có thể không?

Câu trả lời:


11

Mối quan hệ giữa nội dung nhóm và nhóm là thông qua quan hệ thành viên. Vì có thể nội dung nhóm là thành viên của nhiều nhóm, nên đoạn mã sau sẽ lấy danh sách các nhóm:

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

Đây là một mảng nhiều chiều với nhóm entity_types là khóa và thành viên là giá trị. Mỗi thành viên là một mảng với id thành viên là khóa và sau đó id thực thể của nhóm làm giá trị. Vì vậy, để đi từ một nút nội dung nhóm, đến tất cả các nhóm phụ huynh mà bạn sẽ sử dụng ...

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

Xin chào, bạn có thể cho biết cách thực hiện việc này không, nếu tôi đang sử dụng mô-đun Nhóm cùng với Drupal 7? Tôi không tìm thấy câu trả lời
badiya

4

Tôi cần điều này tối qua. Đã làm như thế này:

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

$ og_groups chứa một mảng của tất cả OG mà bài đăng là thành viên. Bạn có thể có được tất cả với một foreach. Chìa khóa để truy cập chúng là nid.

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

Mong rằng sẽ giúp.


3

Các og(organic groups)mô-đun bổ sung entity refrencelĩnh vực với các loại nội dung bạn muốn có một grouphoặc là một group content. theo tên mặc định của trường là og_group_refnhưng có thể nó đổi thành tên khác. Nếu bạn muốn tìm chính xác tên trường og, vui lòng xem trường quản lý loại nội dung của bạn (giả sử loại nội dung bài viết được xem xét của bạn) admin/structure/types/manage/article/fields.
Chọn trường nhóm TÊN MÁY (một số thứ như og_group_ref).

Bạn có thể một cái gì đó như thế này:

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

2

Tìm ra gid sau đó thử in toàn bộ đối tượng nút $, đại loại như:

  print_r (nút $);  

Một số lý do câu trả lời Drupal sẽ không hiển thị bất cứ điều gì trong các thẻ php, nhưng bạn nên bọc php trước để làm cho đầu ra dễ đọc hơn.

Hãy thử ctrl + F và tìm nơi số được xuất ra. Sau đó, bạn có thể theo định dạng của mảng / đối tượng để in nó khi nút $ có sẵn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.