노드의 그룹 ID를 어떻게 얻을 수 있습니까?


9

그룹에 속한이 노드가 있고 해당 노드의 그룹 ID를 가져 와서 그룹 ID와 같은 것을 인쇄하려고합니다 $node->nid;.

가능합니까?

답변:


11

그룹 콘텐츠와 그룹 간의 관계는 멤버십 관계를 통해 이루어집니다. 그룹 내용이 여러 그룹의 구성원이 될 수 있으므로 다음 코드는 그룹 목록을 검색합니다.

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

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다른 이름으로 변경 될 수 있습니다. og 필드 이름을 정확히 찾으려면 컨텐츠 유형 관리 필드를 참조하십시오 (기사로 간주되는 기사 컨텐츠 유형으로 가정) admin/structure/types/manage/article/fields.
그룹 필드 MACHINE NAME을 선택합니다 (같은 것 og_group_ref).

당신은 이런 식으로 할 수 있습니다 :

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

2

gid를 찾은 다음 $ node 객체 전체를 다음과 같이 인쇄하십시오.

  print_r ($ node);  

Drupal 답변이 php 태그에 아무것도 표시하지 않지만 출력을 더 읽기 쉽도록 php를 감싸 야합니다.

ctrl + F를 시도하고 숫자가 출력되는 위치를 찾으십시오. 그런 다음 $ node를 사용할 수있을 때 배열 / 객체의 형식을 따라 인쇄 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.