[gelöst] mitglieder einer gruppe in einem drop-down-feld?

am 26.06.2013 - 10:27 Uhr in
guten tag,
womöglich bin ich etwas nervig, versuche aber mit vielen Umwegen mein bisher ungelöstes Problem in den griff zubekommen...
ich bräuchte eine Möglichkeit, um alle Mitglieder einer gruppe in einem drop-down-Feld angezeigt zu bekommen.
mein bisheriger "forschungsstand":
zuerst hole ich mir die mitglieder über
$query = db_select("og_membership", "ogm");
$query->condition("ogm.gid", $group_id, "=");
$query->fields("ogm", array("entity_type", "etid"));
$result = $query->execute();
das klappt soweit auch ganz gut. dann würde ich die mitglieder gerne ins drop-down-Formular holen
$form['members_of_group'] = array(
'#type' => 'select',
'#title' => t('irgendwas'),
'#default_value' => variable_get('members_of_group', array()),
'#description' => t('irgendwas'),
'#options' => $result->fetchAll(),
);
tja, aber das klappt jetzt irgendwie nicht mehr. kann mir jemand sagen, wo das ganze hängt?
vielen dank für eure hilfe
johannes
- Anmelden oder Registrieren um Kommentare zu schreiben
Das Ganze kannst du wie folgt
am 26.06.2013 - 12:08 Uhr
Das Ganze kannst du wie folgt lösen:
<?php
/**
* Helper function to get all users of a defined group.
*/
function _get_users_in_group($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();
return $result->fetchAll();
}
// 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,
);
?>
Für den Default Value müsstest du dir sicherlich noch was anderes einfallen lassen - es sei denn er wird wirklich so in der variables Tabelle gespeichert. Sonst fehlt zum Testen nur noch eine korrekt GroupId beim Aufruf der _get_users_in_group Funktion.
SteffenR
gigantisch, SteffenR!!! herzlichsten dank!!!
am 26.06.2013 - 16:47 Uhr
hallo SteffenR,
hammermäßig, habs ebebn getestet, das Problem ist gelöst - ich bin hin und weg, vollkommen begeistert!!!
ein herzlicher dank an dich und riesengroßes Kompliment.
ein tolles Forum hier!!!
beste grüße
johannes