/** * logic for setting access for groups * also adds group acls to personal access * * @param type $hook * @param type $type * @param type $returnvalue * @param type $params * @return string */ function au_landing_group_acls($hook, $type, $returnvalue, $params) { $user = get_user($params['user_id']); // get groups and add their acls to the options // only for personal content, eg. don't list all groups inside a group context if ($user && $type == 'user') { // scalability? $groups = $user->getGroups(array('limit' => false)); if ($groups) { foreach ($groups as $group) { // only show top level groups if we're using subgroups if (elgg_is_active_plugin('au_subgroups')) { $parent = \AU\SubGroups\get_parent_group($group); if ($parent) { continue; } $returnvalue[$group->group_acl] = elgg_echo('groups:group') . ": " . $group->name; $returnvalue = au_landing_subgroups_access($group, $user, 5, $returnvalue); } else { $returnvalue[$group->group_acl] = elgg_echo('groups:group') . ": " . $group->name; } } } } return $returnvalue; }
/** * * Generates the dropdown menus for entity containers */ $widget = $vars['entity']; $container = $widget->getContainerEntity(); $options_values = array('mine' => elgg_echo('eligo:owners:mine'), 'friends' => elgg_echo('eligo:owners:friends'), 'groups' => elgg_echo('eligo:owners:groups'), 'all' => elgg_echo('eligo:owners:all')); // get groups and add their acls to the options if ($container && elgg_instanceof($container, 'user')) { $groups = $container->getGroups(array('limit' => 0, 'offset' => 0)); if ($groups) { foreach ($groups as $group) { // only show top level groups if we're using subgroups if (elgg_is_active_plugin('au_subgroups')) { $parent = \AU\SubGroups\get_parent_group($group); if ($parent) { continue; } $options_values[$group->guid] = elgg_echo('groups:group') . ": " . $group->name; $options_values = eligo_get_subgroups_as_owners($group, $container, 5, $options_values); } else { $options_values[$group->guid] = elgg_echo('groups:group') . ": " . $group->name; } } } } if ($vars['eligo_owners']) { $options_values = array_filter(array_merge($options_values, $vars['eligo_owners'])); } echo '<div class="eligo_field">';