Organic Groups - Mitglieder auslesen und in Dropdown anzeigen

Vor Kurzem gab es auf drupalcenter.de die Frage, wie man wohl alle Mitglieder einer Organic Group in einem Dropdown anzeigen lassen könnte.

Folgendes Code-Snippet zeigt die Lösung:

<?php
/**
 * Helper function to retrieve all members of an organic group.
 */
 function _get_users_in_group($gid) {
  $group_members = array();
  if (!empty($gid)) {
    $query = db_select('users', 'u');
    $query
      ->condition('u.uid', 0, '<>')
      ->condition('u.status', 1, '=')
      ->fields('u', array('uid', 'name'))
      ->join('og_membership', 'ogm', "ogm.gid = :gid AND u.uid = ogm.etid AND ogm.entity_type = 'user'", array(':gid' => $gid));
    $result = $query->execute();
    $group_members = $result->fetchAll();
  }
  return $group_members; 
}

// Usage of function in a form element.
$group_members = _get_users_in_group(YOUR_GROUP_ID);
// Build array used in select field
$options = array();
foreach ($group_members as $member) {
  $options[$member->uid] = $member->name;
}
$form['members_of_group'] = array(
  '#type' => 'select',
  '#title' => t('All Members'),
  '#default_value' => variable_get('members_of_group', array()),
  '#description' => t('irgendwas'),
  '#options' => $options,
);

Natürlich kann die Funktion _get_users_in_group auch anderweitig weiterverwendet werden.

Weitere Infos zu Organic Groups:
https://drupal.org/project/og
http://nodeone.se/en/learn-organic-groups

Blog-Kategorien: