From b6ec22721c68bd12db74c0bb9e55482e17f4e58e Mon Sep 17 00:00:00 2001 From: nickw Date: Tue, 8 Jun 2010 20:58:13 +0000 Subject: Cleaning up groups navigation. Action buttons have replaced the submenu links, helping to standardize user experience. Added a membership-dependent breadcrumb trail. git-svn-id: http://code.elgg.org/elgg/trunk@6407 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/groups/languages/en.php | 2 +- mod/groups/start.php | 51 ++++++------------- mod/groups/views/default/groups/groupprofile.php | 64 +++++++++++++++++++----- 3 files changed, 66 insertions(+), 51 deletions(-) (limited to 'mod') diff --git a/mod/groups/languages/en.php b/mod/groups/languages/en.php index d0f8f3239..f802cacea 100644 --- a/mod/groups/languages/en.php +++ b/mod/groups/languages/en.php @@ -83,7 +83,7 @@ */ 'groups:access:private' => 'Closed - Users must be invited', 'groups:access:public' => 'Open - Any user may join', - 'groups:closedgroup' => 'This group has a closed membership. To ask to be added, click the "request membership" menu link.', + 'groups:closedgroup' => 'This group has a closed membership. To ask to be added, click the "request membership" link.', 'groups:visibility' => 'Who can see this group?', /* diff --git a/mod/groups/start.php b/mod/groups/start.php index fdf3b9e45..7c6d39b9d 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -195,50 +195,27 @@ * */ function groups_submenus() { - global $CONFIG; // Get the page owner entity - $page_owner = page_owner_entity(); - - // Submenu items for all group pages - if ($page_owner instanceof ElggGroup && get_context() == 'groups') { - if (isloggedin()) { - if ($page_owner->canEdit()) { - add_submenu_item(elgg_echo('groups:invite'),$CONFIG->wwwroot . "mod/groups/invite.php?group_guid={$page_owner->getGUID()}", '1groupsactions'); - if (!$page_owner->isPublicMembership()) - add_submenu_item(elgg_echo('groups:membershiprequests'),$CONFIG->wwwroot . "mod/groups/membershipreq.php?group_guid={$page_owner->getGUID()}", '1groupsactions'); - } - if ($page_owner->isMember($_SESSION['user'])) { - if ($page_owner->getOwner() != $_SESSION['guid']) { - $url = elgg_add_action_tokens_to_url($CONFIG->wwwroot . "action/groups/leave?group_guid=" . $page_owner->getGUID()); - add_submenu_item(elgg_echo('groups:leave'), $url, '1groupsactions'); - } - } else { - if ($page_owner->isPublicMembership()) { - $url = elgg_add_action_tokens_to_url($CONFIG->wwwroot . "action/groups/join?group_guid={$page_owner->getGUID()}"); - add_submenu_item(elgg_echo('groups:join'), $url, '1groupsactions'); - } else { - $url = elgg_add_action_tokens_to_url($CONFIG->wwwroot . "action/groups/joinrequest?group_guid={$page_owner->getGUID()}"); - add_submenu_item(elgg_echo('groups:joinrequest'), $url, '1groupsactions'); - } - } - } - } + $page_owner = page_owner_entity(); - // Add submenu options - if (get_context() == 'groups' && !($page_owner instanceof ElggGroup)) { - if (isloggedin()) { - add_submenu_item(elgg_echo('groups:owned'), $CONFIG->wwwroot . "pg/groups/owned/" . $_SESSION['user']->username, '1groupslinks'); - add_submenu_item(elgg_echo('groups:yours'), $CONFIG->wwwroot . "pg/groups/member/" . $_SESSION['user']->username, '1groupslinks'); + if (get_context() == 'groups') { + if ($page_owner instanceof ElggGroup) { + if (isloggedin() && $page_owner->canEdit() && !$page_owner->isPublicMembership()) { + $url = "{$CONFIG->wwwroot}mod/groups/membershipreq.php?group_guid={$page_owner->getGUID()}"; + add_submenu_item(elgg_echo('groups:membershiprequests'), $url, '1groupsactions'); } - add_submenu_item(elgg_echo('groups:all'), $CONFIG->wwwroot . "pg/groups/world/", '1groupslinks'); - - if (isloggedin()) { - add_submenu_item(elgg_echo('groups:invitations'), $CONFIG->wwwroot . "pg/groups/invitations/" . $_SESSION['user']->username, '1groupslinks'); + } else { + add_submenu_item(elgg_echo('groups:all'), "{$CONFIG->wwwroot}pg/groups/world/", '1groupslinks'); + + if ($user = get_loggedin_user()) { + add_submenu_item(elgg_echo('groups:owned'), "{$CONFIG->wwwroot}pg/groups/owned/$user->username", '1groupslinks'); + add_submenu_item(elgg_echo('groups:yours'), "{$CONFIG->wwwroot}pg/groups/member/$user->username", '1groupslinks'); + add_submenu_item(elgg_echo('groups:invitations'), "{$CONFIG->wwwroot}pg/groups/invitations/$user->username", '1groupslinks'); } } - + } } /** diff --git a/mod/groups/views/default/groups/groupprofile.php b/mod/groups/views/default/groups/groupprofile.php index f1ca92e4e..ab1990370 100644 --- a/mod/groups/views/default/groups/groupprofile.php +++ b/mod/groups/views/default/groups/groupprofile.php @@ -8,22 +8,62 @@ * @copyright Curverider Ltd 2008-2010 * @link http://elgg.com/ */ -?> + + +$user = get_loggedin_user(); +elgg_push_breadcrumb(elgg_echo('groups:all'), "{$vars['url']}pg/groups/world"); + +// create user actions +$actions = array(); +if ($vars['entity']->canEdit()) { + // breadcrumb trail + elgg_push_breadcrumb(elgg_echo('groups:yours'), "{$vars['url']}pg/groups/member/{$user->username}"); + + // edit and invite + $actions["mod/groups/edit.php?group_guid={$vars['entity']->getGUID()}"] = elgg_echo('groups:edit'); + $actions["mod/groups/invite.php?group_guid={$vars['entity']->getGUID()}"] = elgg_echo('groups:invite'); +} elseif ($vars['entity']->isMember($user)) { + // breadcrumb trail + elgg_push_breadcrumb(elgg_echo('groups:yours'), "{$vars['url']}pg/groups/member/{$user->username}"); + + // leave + $url = elgg_add_action_tokens_to_url("action/groups/leave?group_guid={$vars['entity']->getGUID()}"); + $actions[$url] = elgg_echo('groups:leave'); +} elseif ($vars['entity']->isPublicMembership()) { + // join + $url = elgg_add_action_tokens_to_url("action/groups/join?group_guid={$vars['entity']->getGUID()}"); + $actions[$url] = elgg_echo('groups:join'); +} else { + // request membership + $url = elgg_add_action_tokens_to_url("action/groups/joinrequest?group_guid={$vars['entity']->getGUID()}"); + $actions[$url] = elgg_echo('groups:joinrequest'); +} + +// build aciton buttons +$action_buttons = ''; +if (!empty($actions)) { + $action_buttons = '
'; + foreach ($actions as $url => $action) { + $action_buttons .= "$action"; + } + $action_buttons .= '
'; +} + +// display breadcrumb +elgg_push_breadcrumb($vars['entity']->name); +echo elgg_view('navigation/breadcrumbs'); + +// build and display header +echo <<<__HTML
-

name; ?>

+

{$vars['entity']->name}

- canEdit()) { - ?> -
- -
- + $action_buttons
+__HTML; +?>
@@ -94,5 +134,3 @@ ?>
- - -- cgit v1.2.3