it-swarm.com.de

Wie kann ich die Gruppen-ID eines Knotens erhalten?

Ich habe diesen Knoten, der zu einer Gruppe gehört, und ich möchte die Gruppen-ID dieses Knotens abrufen, um ihn zu drucken, so etwas wie $node->nid; aber mit der Gruppen-ID.

Ist das möglich?

9
Rosamunda

Die Beziehung zwischen Gruppeninhalt und einer Gruppe erfolgt über eine Mitgliedschaftsbeziehung. Da Gruppeninhalte Mitglied mehrerer Gruppen sein können, ruft der folgende Code die Liste der Gruppen ab:

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

Dies ist ein mehrdimensionales Array mit der Gruppe entity_types als Schlüssel und Mitgliedschaften als Wert. Jede Mitgliedschaft ist ein Array mit der Mitglieds-ID als Schlüssel und der Entitäts-ID der Gruppe als Wert. Um von einem Gruppeninhaltsknoten zu allen Gruppeneltern zu gelangen, die Sie verwenden würden ...

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

Ich brauchte das letzte Nacht. Hat es so gefallen:

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

$ og_groups enthält ein Array aller OGs, zu denen ein Beitrag gehört. Sie könnten sie alle mit einem foreach bekommen. Der Schlüssel, um auf sie zuzugreifen, ist die NID.

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

Ich hoffe, das hilft.

4
RubenVarela

Das Modul og(organic groups) fügt den Inhaltstypen, die ein group oder ein entity refrence Sein sollen, das Feld group content Hinzu. Standardmäßig lautet der Name des Feldes og_group_ref, es wird jedoch möglicherweise in einen anderen Namen geändert. Wenn Sie den Feldnamen genau herausfinden möchten, lesen Sie bitte das Feld zur Verwaltung Ihres Inhaltstyps (nehmen wir an, dass Ihr Artikelinhaltstyp berücksichtigt wurde) admin/structure/types/manage/article/fields.
Sammle das Gruppenfeld MASCHINENNAME (etwas wie og_group_ref).

Sie können so etwas:

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

Finden Sie die GID heraus und versuchen Sie, das gesamte $ node-Objekt zu drucken.

  print_r ($ node); 

Aus irgendeinem Grund Drupal Antworten zeigen nichts in den PHP-Tags an, aber Sie sollten das PHP vorab einpacken, um die Ausgabe besser lesbar zu machen.

Versuchen Sie Strg + F und finden Sie heraus, wo die Nummer ausgegeben wird. Sie können dann dem Format der Arrays/Objekte folgen, um es zu drucken, wenn $ node verfügbar ist.

2
WestieUK