function og_subgroups_get_users in Subgroups for Organic groups 5.3
Retrieve an array of all users that are members of the group If the recursive flag is true, then users of children are returned as well
6 calls to og_subgroups_get_users()
- og_subgroups_edit_members_page in ./
og_subgroups.module - og_subgroups_form_alter in ./
og_subgroups.module - Implementation of hook_form_alter().
- og_subgroups_members_page in ./
og_subgroups.module - Output a viewable page of group members
- og_subgroups_members_select in ./
og_subgroups.module - og_subgroups_save_members in ./
og_subgroups.module
File
- ./
og_subgroups.module, line 619 - Maintains a hierarchy of group/subgroup relationships.
Code
function og_subgroups_get_users($return_type = 'users', $gid = 0, $recursive = 0) {
if ($gid > 0) {
$result = db_query(og_list_users_sql(), $gid);
}
else {
$result = db_query("SELECT u.uid, u.name, u.mail, u.picture FROM {users} u");
}
$users = array();
while ($user = db_fetch_object($result)) {
if ($return_type == 'links') {
$users[$user->uid] = theme('username', $user);
}
if ($return_type == 'users') {
$users[$user->uid] = $user;
}
if ($return_type == 'names') {
$users[$user->uid] = $user->name;
}
}
if ($recursive) {
$children = og_subgroups_get_children($gid);
foreach ($children as $cid => $cname) {
// We'll have to merge ourselves due to desire to have unique keys
// Original code just used array_merge but this leaves us with reindexed numeric keys
// which will not work. The uid keys MUST be preserved uniquely.
$susers = og_subgroups_get_users($return_type, $cid, 1);
foreach ($susers as $sid => $cname) {
if (empty($users[$sid])) {
$users[$sid] = $cname;
}
}
}
}
return $users;
}