/** * Prevents the widget from showing users groups if membership visibility criteria is not met * * @param string $hook "view" * @param string $type "widgets/a_users_groups/content" * @param string $return View * @param array $params Hook params * @return string */ function group_list_users_groups_widget_access($hook, $type, $return, $params) { $vars = elgg_extract('vars', $params); $entity = elgg_extract('entity', $vars); if (!$entity instanceof ElggWidget) { return; } $owner = $entity->getOwnerEntity(); if (!group_list_can_view_membership($owner)) { return elgg_format_element('p', ['class' => 'elgg-no-results'], elgg_echo('user:groups:no_access')); } }
<?php $identifier = elgg_extract('identifier', $vars, 'groups'); $username = elgg_extract('username', $vars); if ($username) { $user = get_user_by_username($username); elgg_set_page_owner_guid($user->guid); } else { $user = elgg_get_logged_in_user_entity(); elgg_set_page_owner_guid($user->guid); } if (!$user) { forward('', '404'); } if (!group_list_can_view_membership($user)) { register_error(elgg_echo('user:groups:no_access')); forward($identifier); } elgg_push_breadcrumb(elgg_echo($identifier), "{$identifier}/all"); if ($user->guid == elgg_get_logged_in_user_guid()) { $title = elgg_echo("{$identifier}:owned"); } else { $title = elgg_echo("{$identifier}:owned:user", array($user->name)); elgg_push_breadcrumb($user->name, $user->getURL()); } elgg_push_breadcrumb($title); $dbprefix = elgg_get_config('dbprefix'); $content = elgg_view('lists/groups/all', array('rel' => 'admin', 'show_rel' => false, 'user' => $user)); $params = array('content' => $content, 'title' => $title, 'filter' => ''); $body = elgg_view_layout('content', $params); echo elgg_view_page($title, $body);