]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #4362 better solution to registering menu items for group pages
authorCash Costello <cash.costello@gmail.com>
Fri, 6 Jul 2012 01:08:41 +0000 (21:08 -0400)
committerCash Costello <cash.costello@gmail.com>
Fri, 6 Jul 2012 01:08:41 +0000 (21:08 -0400)
mod/groups/lib/groups.php
mod/groups/start.php

index 498766df0a210a0824d609bdbd59f3cbd6163abb..536d416df0f28e23f4acc4f78d6f690b9e8eb3b5 100644 (file)
@@ -238,6 +238,8 @@ function groups_handle_profile_page($guid) {
        global $autofeed;
        $autofeed = true;
 
+       elgg_push_context('group_profile');
+
        $group = get_entity($guid);
        if (!$group) {
                forward('groups/all');
index 193b72a4e889e1a1c42808b214c8bd4e8c6899f2..48df338c079f2b406da03030e067d68597aa1875 100644 (file)
@@ -141,35 +141,34 @@ function groups_setup_sidebar_menus() {
        // Get the page owner entity
        $page_owner = elgg_get_page_owner_entity();
 
-       if (elgg_get_context() == 'groups') {
-               if ($page_owner instanceof ElggGroup) {
-                       if (elgg_is_logged_in() && $page_owner->canEdit() && !$page_owner->isPublicMembership()) {
-                               $url = elgg_get_site_url() . "groups/requests/{$page_owner->getGUID()}";
-                               elgg_register_menu_item('page', array(
-                                       'name' => 'membership_requests',
-                                       'text' => elgg_echo('groups:membershiprequests'),
-                                       'href' => $url,
-                               ));
-                       }
-               } else {
+       if (elgg_in_context('group_profile')) {
+               if (elgg_is_logged_in() && $page_owner->canEdit() && !$page_owner->isPublicMembership()) {
+                       $url = elgg_get_site_url() . "groups/requests/{$page_owner->getGUID()}";
                        elgg_register_menu_item('page', array(
-                               'name' => 'groups:all',
-                               'text' => elgg_echo('groups:all'),
-                               'href' => 'groups/all',
+                               'name' => 'membership_requests',
+                               'text' => elgg_echo('groups:membershiprequests'),
+                               'href' => $url,
                        ));
+               }
+       }
+       if (elgg_get_context() == 'groups' && !elgg_instanceof($page_owner, 'group')) {
+               elgg_register_menu_item('page', array(
+                       'name' => 'groups:all',
+                       'text' => elgg_echo('groups:all'),
+                       'href' => 'groups/all',
+               ));
 
-                       $user = elgg_get_logged_in_user_entity();
-                       if ($user) {
-                               $url =  "groups/owner/$user->username";
-                               $item = new ElggMenuItem('groups:owned', elgg_echo('groups:owned'), $url);
-                               elgg_register_menu_item('page', $item);
-                               $url = "groups/member/$user->username";
-                               $item = new ElggMenuItem('groups:member', elgg_echo('groups:yours'), $url);
-                               elgg_register_menu_item('page', $item);
-                               $url = "groups/invitations/$user->username";
-                               $item = new ElggMenuItem('groups:user:invites', elgg_echo('groups:invitations'), $url);
-                               elgg_register_menu_item('page', $item);
-                       }
+               $user = elgg_get_logged_in_user_entity();
+               if ($user) {
+                       $url =  "groups/owner/$user->username";
+                       $item = new ElggMenuItem('groups:owned', elgg_echo('groups:owned'), $url);
+                       elgg_register_menu_item('page', $item);
+                       $url = "groups/member/$user->username";
+                       $item = new ElggMenuItem('groups:member', elgg_echo('groups:yours'), $url);
+                       elgg_register_menu_item('page', $item);
+                       $url = "groups/invitations/$user->username";
+                       $item = new ElggMenuItem('groups:user:invites', elgg_echo('groups:invitations'), $url);
+                       elgg_register_menu_item('page', $item);
                }
        }
 }