Як я можу отримати груповий ідентифікатор вузла?


9

У мене є цей вузол, який належить до групи, і я хочу отримати ідентифікатор групи цього вузла, щоб надрукувати його, щось подібне, $node->nid;але з ідентифікатором групи.

Це можливо?

Відповіді:


11

Зв'язок між вмістом групи та групою здійснюється через відношення до членства. Оскільки вміст групи може бути членом декількох груп, наступний код отримає список груп:

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

Це багатовимірний масив із ключовим елементом group_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);          
    }
  }
}

Привіт, скажіть, будь ласка, як це зробити, якщо я використовую груповий модуль разом з Drupal 7? Я не знайшов відповіді
badiya

4

Мені це було потрібно минулої ночі. Чи сподобалось це:

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

$ og_groups містить масив усіх OG, членом якої є публікація. Ти міг їх усіх дістати за допомогою передбачень. Ключ для доступу до них - це nid.

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

Сподіваюся, що це допомагає.


3

og(organic groups)Модуль додати entity refrenceполе для типів контенту , які ви хочете бути groupабо бути group content. за замовчуванням назва поля є, og_group_refале, можливо, воно зміниться на інше ім'я. Якщо ви хочете точно дізнатися назву поля, будь ласка, перегляньте поле керування типом вмісту (припустимо, ваш розглянутий тип вмісту статті) 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 доступний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.