From 24378b3ecc07eb568e383823967a0ae6378120d6 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 22 Jan 2011 22:22:33 +0000 Subject: Fixes #2295 added a group member list page git-svn-id: http://code.elgg.org/elgg/trunk@7906 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/groups/languages/en.php | 2 ++ mod/groups/lib/groups.php | 40 ++++++++++++++++++++++ mod/groups/start.php | 4 +++ .../views/default/groups/sidebar/members.php | 9 ++++- 4 files changed, 54 insertions(+), 1 deletion(-) (limited to 'mod/groups') diff --git a/mod/groups/languages/en.php b/mod/groups/languages/en.php index e5db5d0c5..7ea83bcee 100644 --- a/mod/groups/languages/en.php +++ b/mod/groups/languages/en.php @@ -29,6 +29,8 @@ $english = array( 'groups:interests' => 'Tags', 'groups:website' => 'Website', 'groups:members' => 'Group members', + 'groups:members:title' => 'Members of %s', + 'groups:members:more' => "View all members", 'groups:membership' => "Group membership permissions", 'groups:access' => "Access permissions", 'groups:owner' => "Owner", diff --git a/mod/groups/lib/groups.php b/mod/groups/lib/groups.php index 426d67c86..cb9daf8e9 100644 --- a/mod/groups/lib/groups.php +++ b/mod/groups/lib/groups.php @@ -247,6 +247,46 @@ function groups_handle_activity_page($guid) { echo elgg_view_page($title, $body); } +/** + * Group members page + * + * @param int $guid Group entity GUID + */ +function groups_handle_members_page($guid) { + + elgg_set_page_owner_guid($guid); + + $group = get_entity($guid); + if (!$group || !elgg_instanceof($group, 'group')) { + forward(); + } + + group_gatekeeper(); + + $title = elgg_echo('groups:members:title', array($group->name)); + + elgg_push_breadcrumb($group->name, $group->getURL()); + elgg_push_breadcrumb(elgg_echo('groups:members:')); + + $content = elgg_list_entities_from_relationship(array( + 'relationship' => 'member', + 'relationship_guid' => $group->guid, + 'inverse_relationship' => true, + 'types' => 'user', + 'limit' => 20, + )); + + $params = array( + 'content' => $content, + 'title' => $title, + 'buttons' => '', + 'filter' => '', + ); + $body = elgg_view_layout('content', $params); + + echo elgg_view_page($title, $body); +} + /** * Invite users to a group * diff --git a/mod/groups/start.php b/mod/groups/start.php index d782c745f..92416a205 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -172,6 +172,7 @@ function groups_page_owner_handler() { * Invite to group: pg/groups/invite/ * Membership requests: pg/groups/requests/ * Group activity: pg/groups/activity/ + * Group members: pg/groups/members/ * * @param array $page Array of url segments for routing */ @@ -209,6 +210,9 @@ function groups_page_handler($page) { case 'activity': groups_handle_activity_page($page[1]); break; + case 'members': + groups_handle_members_page($page[1]); + break; case 'invite': groups_handle_invite_page($page[1]); break; diff --git a/mod/groups/views/default/groups/sidebar/members.php b/mod/groups/views/default/groups/sidebar/members.php index b4e9199af..a8c2ffd3f 100644 --- a/mod/groups/views/default/groups/sidebar/members.php +++ b/mod/groups/views/default/groups/sidebar/members.php @@ -5,11 +5,18 @@ * @package ElggGroups */ -$body = ''; +$all_link = elgg_view('output/url', array( + 'href' => 'pg/groups/members/' . $vars['entity']->guid, + 'text' => elgg_echo('groups:members:more'), +)); + +$body = '
'; $members = $vars['entity']->getMembers(10); foreach ($members as $mem) { $body .= ""; } +$body .= '
'; +$body .= "
$all_link
"; echo elgg_view('layout/objects/module', array( 'title' => elgg_echo("groups:members"), -- cgit v1.2.3