diff --git a/mod/groups/lib/groups.php b/mod/groups/lib/groups.php index 96d73664bc4..eb6e1033fef 100644 --- a/mod/groups/lib/groups.php +++ b/mod/groups/lib/groups.php @@ -3,497 +3,6 @@ * Groups function library */ -/** - * List all groups - */ -function groups_handle_all_page() { - - // all groups doesn't get link to self - elgg_pop_breadcrumb(); - elgg_push_breadcrumb(elgg_echo('groups')); - - if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) { - elgg_register_title_button(); - } - - $selected_tab = get_input('filter', 'newest'); - - switch ($selected_tab) { - case 'popular': - $content = elgg_list_entities_from_relationship_count(array( - 'type' => 'group', - 'relationship' => 'member', - 'inverse_relationship' => false, - 'full_view' => false, - 'no_results' => elgg_echo('groups:none'), - )); - break; - case 'discussion': - $content = elgg_list_entities(array( - 'type' => 'object', - 'subtype' => 'groupforumtopic', - 'order_by' => 'e.last_action desc', - 'limit' => 40, - 'full_view' => false, - 'no_results' => elgg_echo('discussion:none'), - 'distinct' => false, - 'preload_containers' => true, - )); - break; - case 'featured': - $content = elgg_list_entities_from_metadata(array( - 'type' => 'group', - 'metadata_name' => 'featured_group', - 'metadata_value' => 'yes', - 'full_view' => false, - )); - if (!$content) { - $content = elgg_echo('groups:nofeatured'); - } - break; - case 'newest': - default: - $content = elgg_list_entities(array( - 'type' => 'group', - 'full_view' => false, - 'no_results' => elgg_echo('groups:none'), - 'distinct' => false, - )); - break; - } - - $filter = elgg_view('groups/group_sort_menu', array('selected' => $selected_tab)); - - $sidebar = elgg_view('groups/sidebar/find'); - $sidebar .= elgg_view('groups/sidebar/featured'); - - $params = array( - 'content' => $content, - 'sidebar' => $sidebar, - 'filter' => $filter, - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page(elgg_echo('groups:all'), $body); -} - -function groups_search_page() { - elgg_push_breadcrumb(elgg_echo('search')); - - $tag = get_input("tag"); - $display_query = _elgg_get_display_query($tag); - $title = elgg_echo('groups:search:title', array($display_query)); - - // groups plugin saves tags as "interests" - see groups_fields_setup() in start.php - $params = array( - 'metadata_name' => 'interests', - 'metadata_value' => $tag, - 'type' => 'group', - 'full_view' => false, - 'no_results' => elgg_echo('groups:search:none'), - ); - $content = elgg_list_entities_from_metadata($params); - - $sidebar = elgg_view('groups/sidebar/find'); - $sidebar .= elgg_view('groups/sidebar/featured'); - - $params = array( - 'content' => $content, - 'sidebar' => $sidebar, - 'filter' => false, - 'title' => $title, - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - -/** - * List owned groups - */ -function groups_handle_owned_page() { - - $page_owner = elgg_get_page_owner_entity(); - - if ($page_owner->guid == elgg_get_logged_in_user_guid()) { - $title = elgg_echo('groups:owned'); - } else { - $title = elgg_echo('groups:owned:user', array($page_owner->name)); - } - elgg_push_breadcrumb($title); - - if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) { - elgg_register_title_button(); - } - - $dbprefix = elgg_get_config('dbprefix'); - $content = elgg_list_entities(array( - 'type' => 'group', - 'owner_guid' => elgg_get_page_owner_guid(), - 'joins' => array("JOIN {$dbprefix}groups_entity ge ON e.guid = ge.guid"), - 'order_by' => 'ge.name ASC', - 'full_view' => false, - 'no_results' => elgg_echo('groups:none'), - 'distinct' => false, - )); - - $params = array( - 'content' => $content, - 'title' => $title, - 'filter' => '', - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - -/** - * List groups the user is memober of - */ -function groups_handle_mine_page() { - - $page_owner = elgg_get_page_owner_entity(); - - if ($page_owner->guid == elgg_get_logged_in_user_guid()) { - $title = elgg_echo('groups:yours'); - } else { - $title = elgg_echo('groups:user', array($page_owner->name)); - } - elgg_push_breadcrumb($title); - - if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) { - elgg_register_title_button(); - } - - $dbprefix = elgg_get_config('dbprefix'); - - $content = elgg_list_entities_from_relationship(array( - 'type' => 'group', - 'relationship' => 'member', - 'relationship_guid' => elgg_get_page_owner_guid(), - 'inverse_relationship' => false, - 'full_view' => false, - 'joins' => array("JOIN {$dbprefix}groups_entity ge ON e.guid = ge.guid"), - 'order_by' => 'ge.name ASC', - 'no_results' => elgg_echo('groups:none'), - )); - - $params = array( - 'content' => $content, - 'title' => $title, - 'filter' => '', - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - -/** - * Create or edit a group - * - * @param string $page - * @param int $guid - */ -function groups_handle_edit_page($page, $guid = 0) { - elgg_gatekeeper(); - - elgg_require_js('elgg/groups/edit'); - - if ($page == 'add') { - elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); - $title = elgg_echo('groups:add'); - elgg_push_breadcrumb($title); - if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) { - $content = elgg_view('groups/edit'); - } else { - $content = elgg_echo('groups:cantcreate'); - } - } else { - $title = elgg_echo("groups:edit"); - $group = get_entity($guid); - - if (elgg_instanceof($group, 'group') && $group->canEdit()) { - elgg_set_page_owner_guid($group->getGUID()); - elgg_push_breadcrumb($group->name, $group->getURL()); - elgg_push_breadcrumb($title); - $content = elgg_view("groups/edit", array('entity' => $group)); - } else { - $content = elgg_echo('groups:noaccess'); - } - } - - $params = array( - 'content' => $content, - 'title' => $title, - 'filter' => '', - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - -/** - * Group invitations for a user - */ -function groups_handle_invitations_page() { - elgg_gatekeeper(); - - $username = get_input('username'); - 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 || !$user->canEdit()) { - register_error(elgg_echo('noaccess')); - forward(''); - } - - $title = elgg_echo('groups:invitations'); - elgg_push_breadcrumb($title); - - $content = elgg_view('groups/invitationrequests'); - - $params = array( - 'content' => $content, - 'title' => $title, - 'filter' => '', - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - -/** - * Group profile page - * - * @param int $guid Group entity GUID - */ -function groups_handle_profile_page($guid) { - elgg_set_page_owner_guid($guid); - - // turn this into a core function - global $autofeed; - $autofeed = true; - - elgg_push_context('group_profile'); - - elgg_entity_gatekeeper($guid, 'group'); - - $group = get_entity($guid); - - elgg_push_breadcrumb($group->name); - - groups_register_profile_buttons($group); - - $content = elgg_view('groups/profile/layout', array('entity' => $group)); - $sidebar = ''; - - if (elgg_group_gatekeeper(false)) { - if (elgg_is_active_plugin('search')) { - $sidebar .= elgg_view('groups/sidebar/search', array('entity' => $group)); - } - $sidebar .= elgg_view('groups/sidebar/members', array('entity' => $group)); - - $subscribed = false; - if (elgg_is_active_plugin('notifications')) { - $NOTIFICATION_HANDLERS = _elgg_services()->notifications->getMethodsAsDeprecatedGlobal(); - foreach ($NOTIFICATION_HANDLERS as $method => $foo) { - $relationship = check_entity_relationship(elgg_get_logged_in_user_guid(), - 'notify' . $method, $guid); - - if ($relationship) { - $subscribed = true; - break; - } - } - } - - $sidebar .= elgg_view('groups/sidebar/my_status', array( - 'entity' => $group, - 'subscribed' => $subscribed - )); - } - - $params = array( - 'content' => $content, - 'sidebar' => $sidebar, - 'title' => $group->name, - ); - $body = elgg_view_layout('one_sidebar', $params); - - echo elgg_view_page($group->name, $body); -} - -/** - * Group activity page - * - * @param int $guid Group entity GUID - */ -function groups_handle_activity_page($guid) { - - elgg_entity_gatekeeper($guid, 'group'); - - elgg_set_page_owner_guid($guid); - - elgg_group_gatekeeper(); - - $group = get_entity($guid); - - $title = elgg_echo('groups:activity'); - - elgg_push_breadcrumb($group->name, $group->getURL()); - elgg_push_breadcrumb($title); - - $db_prefix = elgg_get_config('dbprefix'); - - $content = elgg_list_river(array( - 'joins' => array( - "JOIN {$db_prefix}entities e1 ON e1.guid = rv.object_guid", - "LEFT JOIN {$db_prefix}entities e2 ON e2.guid = rv.target_guid", - ), - 'wheres' => array( - "(e1.container_guid = $group->guid OR e2.container_guid = $group->guid)", - ), - 'no_results' => elgg_echo('groups:activity:none'), - )); - - $params = array( - 'content' => $content, - 'title' => $title, - 'filter' => '', - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - -/** - * Group members page - * - * @param int $guid Group entity GUID - */ -function groups_handle_members_page($guid) { - - elgg_entity_gatekeeper($guid, 'group'); - - $group = get_entity($guid); - - elgg_set_page_owner_guid($guid); - - elgg_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')); - - $db_prefix = elgg_get_config('dbprefix'); - $content = elgg_list_entities_from_relationship(array( - 'relationship' => 'member', - 'relationship_guid' => $group->guid, - 'inverse_relationship' => true, - 'type' => 'user', - 'limit' => (int)get_input('limit', max(20, elgg_get_config('default_limit')), false), - 'joins' => array("JOIN {$db_prefix}users_entity u ON e.guid=u.guid"), - 'order_by' => 'u.name ASC', - )); - - $params = array( - 'content' => $content, - 'title' => $title, - 'filter' => '', - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - -/** - * Invite users to a group - * - * @param int $guid Group entity GUID - */ -function groups_handle_invite_page($guid) { - elgg_gatekeeper(); - - elgg_set_page_owner_guid($guid); - - $title = elgg_echo('groups:invite:title'); - - $group = get_entity($guid); - if (!elgg_instanceof($group, 'group') || !$group->canEdit()) { - register_error(elgg_echo('groups:noaccess')); - forward(REFERER); - } - - $content = elgg_view_form('groups/invite', array( - 'id' => 'invite_to_group', - 'class' => 'elgg-form-alt mtm', - ), array( - 'entity' => $group, - )); - - elgg_push_breadcrumb($group->name, $group->getURL()); - elgg_push_breadcrumb(elgg_echo('groups:invite')); - - $params = array( - 'content' => $content, - 'title' => $title, - 'filter' => '', - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - -/** - * Manage requests to join a group - * - * @param int $guid Group entity GUID - */ -function groups_handle_requests_page($guid) { - - elgg_gatekeeper(); - - elgg_set_page_owner_guid($guid); - - $group = get_entity($guid); - if (!elgg_instanceof($group, 'group') || !$group->canEdit()) { - register_error(elgg_echo('groups:noaccess')); - forward(REFERER); - } - - $title = elgg_echo('groups:membershiprequests'); - - elgg_push_breadcrumb($group->name, $group->getURL()); - elgg_push_breadcrumb($title); - - $requests = elgg_get_entities_from_relationship(array( - 'type' => 'user', - 'relationship' => 'membership_request', - 'relationship_guid' => $guid, - 'inverse_relationship' => true, - 'limit' => 0, - )); - $content = elgg_view('groups/membershiprequests', array( - 'requests' => $requests, - 'entity' => $group, - )); - - $params = array( - 'content' => $content, - 'title' => $title, - 'filter' => '', - ); - $body = elgg_view_layout('content', $params); - - echo elgg_view_page($title, $body); -} - /** * Registers the buttons for title area of the group profile page * diff --git a/mod/groups/start.php b/mod/groups/start.php index 02d9adb936d..ad8fac043da 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -239,43 +239,25 @@ function groups_page_handler($page) { elgg_push_breadcrumb(elgg_echo('groups'), "groups/all"); switch ($page[0]) { + case 'add': case 'all': - groups_handle_all_page(); - break; - case 'search': - groups_search_page(); - break; case 'owner': - groups_handle_owned_page(); - break; - case 'member': - set_input('username', $page[1]); - groups_handle_mine_page(); + case 'search': + echo elgg_view("resources/groups/{$page[0]}"); break; case 'invitations': + case 'member': set_input('username', $page[1]); - groups_handle_invitations_page(); - break; - case 'add': - groups_handle_edit_page('add'); - break; - case 'edit': - groups_handle_edit_page('edit', $page[1]); - break; - case 'profile': - groups_handle_profile_page($page[1]); + echo elgg_view("resources/groups/{$page[0]}"); break; case 'activity': - groups_handle_activity_page($page[1]); - break; - case 'members': - groups_handle_members_page($page[1]); - break; + case 'edit': case 'invite': - groups_handle_invite_page($page[1]); - break; + case 'members': + case 'profile': case 'requests': - groups_handle_requests_page($page[1]); + set_input('guid', $page[1]); + echo elgg_view("resources/groups/{$page[0]}"); break; default: return false; diff --git a/mod/groups/views/default/resources/groups/activity.php b/mod/groups/views/default/resources/groups/activity.php new file mode 100644 index 00000000000..1567997fcc2 --- /dev/null +++ b/mod/groups/views/default/resources/groups/activity.php @@ -0,0 +1,37 @@ +name, $group->getURL()); +elgg_push_breadcrumb($title); + +$db_prefix = elgg_get_config('dbprefix'); + +$content = elgg_list_river(array( + 'joins' => array( + "JOIN {$db_prefix}entities e1 ON e1.guid = rv.object_guid", + "LEFT JOIN {$db_prefix}entities e2 ON e2.guid = rv.target_guid", + ), + 'wheres' => array( + "(e1.container_guid = $group->guid OR e2.container_guid = $group->guid)", + ), + 'no_results' => elgg_echo('groups:activity:none'), +)); + +$params = array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/add.php b/mod/groups/views/default/resources/groups/add.php new file mode 100644 index 00000000000..4de6468d8af --- /dev/null +++ b/mod/groups/views/default/resources/groups/add.php @@ -0,0 +1,23 @@ + $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/all.php b/mod/groups/views/default/resources/groups/all.php new file mode 100644 index 00000000000..08afec11570 --- /dev/null +++ b/mod/groups/views/default/resources/groups/all.php @@ -0,0 +1,69 @@ + 'group', + 'relationship' => 'member', + 'inverse_relationship' => false, + 'full_view' => false, + 'no_results' => elgg_echo('groups:none'), + )); + break; + case 'discussion': + $content = elgg_list_entities(array( + 'type' => 'object', + 'subtype' => 'groupforumtopic', + 'order_by' => 'e.last_action desc', + 'limit' => 40, + 'full_view' => false, + 'no_results' => elgg_echo('discussion:none'), + 'distinct' => false, + 'preload_containers' => true, + )); + break; + case 'featured': + $content = elgg_list_entities_from_metadata(array( + 'type' => 'group', + 'metadata_name' => 'featured_group', + 'metadata_value' => 'yes', + 'full_view' => false, + )); + if (!$content) { + $content = elgg_echo('groups:nofeatured'); + } + break; + case 'newest': + default: + $content = elgg_list_entities(array( + 'type' => 'group', + 'full_view' => false, + 'no_results' => elgg_echo('groups:none'), + 'distinct' => false, + )); + break; +} + +$filter = elgg_view('groups/group_sort_menu', array('selected' => $selected_tab)); + +$sidebar = elgg_view('groups/sidebar/find'); +$sidebar .= elgg_view('groups/sidebar/featured'); + +$params = array( + 'content' => $content, + 'sidebar' => $sidebar, + 'filter' => $filter, +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page(elgg_echo('groups:all'), $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/edit.php b/mod/groups/views/default/resources/groups/edit.php new file mode 100644 index 00000000000..5c5a5410a50 --- /dev/null +++ b/mod/groups/views/default/resources/groups/edit.php @@ -0,0 +1,27 @@ +canEdit()) { + elgg_set_page_owner_guid($group->getGUID()); + elgg_push_breadcrumb($group->name, $group->getURL()); + elgg_push_breadcrumb($title); + $content = elgg_view("groups/edit", array('entity' => $group)); +} else { + $content = elgg_echo('groups:noaccess'); +} + +$params = array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/invitations.php b/mod/groups/views/default/resources/groups/invitations.php new file mode 100644 index 00000000000..9401562db38 --- /dev/null +++ b/mod/groups/views/default/resources/groups/invitations.php @@ -0,0 +1,31 @@ +guid); +} else { + $user = elgg_get_logged_in_user_entity(); + elgg_set_page_owner_guid($user->guid); +} + +if (!$user || !$user->canEdit()) { + register_error(elgg_echo('noaccess')); + forward(''); +} + +$title = elgg_echo('groups:invitations'); +elgg_push_breadcrumb($title); + +$content = elgg_view('groups/invitationrequests'); + +$params = array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/invite.php b/mod/groups/views/default/resources/groups/invite.php new file mode 100644 index 00000000000..e2cc98c4254 --- /dev/null +++ b/mod/groups/views/default/resources/groups/invite.php @@ -0,0 +1,33 @@ +canEdit()) { + register_error(elgg_echo('groups:noaccess')); + forward(REFERER); +} + +$content = elgg_view_form('groups/invite', array( + 'id' => 'invite_to_group', + 'class' => 'elgg-form-alt mtm', +), array( + 'entity' => $group, +)); + +elgg_push_breadcrumb($group->name, $group->getURL()); +elgg_push_breadcrumb(elgg_echo('groups:invite')); + +$params = array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/member.php b/mod/groups/views/default/resources/groups/member.php new file mode 100644 index 00000000000..9a8be2a1614 --- /dev/null +++ b/mod/groups/views/default/resources/groups/member.php @@ -0,0 +1,36 @@ +guid == elgg_get_logged_in_user_guid()) { + $title = elgg_echo('groups:yours'); +} else { + $title = elgg_echo('groups:user', array($page_owner->name)); +} +elgg_push_breadcrumb($title); + +if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) { + elgg_register_title_button(); +} + +$dbprefix = elgg_get_config('dbprefix'); + +$content = elgg_list_entities_from_relationship(array( + 'type' => 'group', + 'relationship' => 'member', + 'relationship_guid' => elgg_get_page_owner_guid(), + 'inverse_relationship' => false, + 'full_view' => false, + 'joins' => array("JOIN {$dbprefix}groups_entity ge ON e.guid = ge.guid"), + 'order_by' => 'ge.name ASC', + 'no_results' => elgg_echo('groups:none'), +)); + +$params = array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/members.php b/mod/groups/views/default/resources/groups/members.php new file mode 100644 index 00000000000..f6f9a2f65a0 --- /dev/null +++ b/mod/groups/views/default/resources/groups/members.php @@ -0,0 +1,35 @@ +name)); + +elgg_push_breadcrumb($group->name, $group->getURL()); +elgg_push_breadcrumb(elgg_echo('groups:members')); + +$db_prefix = elgg_get_config('dbprefix'); +$content = elgg_list_entities_from_relationship(array( + 'relationship' => 'member', + 'relationship_guid' => $group->guid, + 'inverse_relationship' => true, + 'type' => 'user', + 'limit' => (int)get_input('limit', max(20, elgg_get_config('default_limit')), false), + 'joins' => array("JOIN {$db_prefix}users_entity u ON e.guid=u.guid"), + 'order_by' => 'u.name ASC', +)); + +$params = array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); diff --git a/mod/groups/views/default/resources/groups/owner.php b/mod/groups/views/default/resources/groups/owner.php new file mode 100644 index 00000000000..7c44c404d07 --- /dev/null +++ b/mod/groups/views/default/resources/groups/owner.php @@ -0,0 +1,34 @@ +guid == elgg_get_logged_in_user_guid()) { + $title = elgg_echo('groups:owned'); +} else { + $title = elgg_echo('groups:owned:user', array($page_owner->name)); +} +elgg_push_breadcrumb($title); + +if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) { + elgg_register_title_button(); +} + +$dbprefix = elgg_get_config('dbprefix'); +$content = elgg_list_entities(array( + 'type' => 'group', + 'owner_guid' => elgg_get_page_owner_guid(), + 'joins' => array("JOIN {$dbprefix}groups_entity ge ON e.guid = ge.guid"), + 'order_by' => 'ge.name ASC', + 'full_view' => false, + 'no_results' => elgg_echo('groups:none'), + 'distinct' => false, +)); + +$params = array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/profile.php b/mod/groups/views/default/resources/groups/profile.php new file mode 100644 index 00000000000..0870dcdd7b3 --- /dev/null +++ b/mod/groups/views/default/resources/groups/profile.php @@ -0,0 +1,56 @@ +name); + +groups_register_profile_buttons($group); + +$content = elgg_view('groups/profile/layout', array('entity' => $group)); +$sidebar = ''; + +if (elgg_group_gatekeeper(false)) { + if (elgg_is_active_plugin('search')) { + $sidebar .= elgg_view('groups/sidebar/search', array('entity' => $group)); + } + $sidebar .= elgg_view('groups/sidebar/members', array('entity' => $group)); + + $subscribed = false; + if (elgg_is_active_plugin('notifications')) { + $NOTIFICATION_HANDLERS = _elgg_services()->notifications->getMethodsAsDeprecatedGlobal(); + foreach ($NOTIFICATION_HANDLERS as $method => $foo) { + $relationship = check_entity_relationship(elgg_get_logged_in_user_guid(), + 'notify' . $method, $guid); + + if ($relationship) { + $subscribed = true; + break; + } + } + } + + $sidebar .= elgg_view('groups/sidebar/my_status', array( + 'entity' => $group, + 'subscribed' => $subscribed + )); +} + +$params = array( + 'content' => $content, + 'sidebar' => $sidebar, + 'title' => $group->name, +); +$body = elgg_view_layout('one_sidebar', $params); + +echo elgg_view_page($group->name, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/requests.php b/mod/groups/views/default/resources/groups/requests.php new file mode 100644 index 00000000000..43be2065bc5 --- /dev/null +++ b/mod/groups/views/default/resources/groups/requests.php @@ -0,0 +1,38 @@ +canEdit()) { + register_error(elgg_echo('groups:noaccess')); + forward(REFERER); +} + +$title = elgg_echo('groups:membershiprequests'); + +elgg_push_breadcrumb($group->name, $group->getURL()); +elgg_push_breadcrumb($title); + +$requests = elgg_get_entities_from_relationship(array( + 'type' => 'user', + 'relationship' => 'membership_request', + 'relationship_guid' => $guid, + 'inverse_relationship' => true, + 'limit' => 0, +)); +$content = elgg_view('groups/membershiprequests', array( + 'requests' => $requests, + 'entity' => $group, +)); + +$params = array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/groups/views/default/resources/groups/search.php b/mod/groups/views/default/resources/groups/search.php new file mode 100644 index 00000000000..73f5a1b0aa8 --- /dev/null +++ b/mod/groups/views/default/resources/groups/search.php @@ -0,0 +1,30 @@ + 'interests', + 'metadata_value' => $tag, + 'type' => 'group', + 'full_view' => false, + 'no_results' => elgg_echo('groups:search:none'), +); +$content = elgg_list_entities_from_metadata($params); + +$sidebar = elgg_view('groups/sidebar/find'); +$sidebar .= elgg_view('groups/sidebar/featured'); + +$params = array( + 'content' => $content, + 'sidebar' => $sidebar, + 'filter' => false, + 'title' => $title, +); +$body = elgg_view_layout('content', $params); + +echo elgg_view_page($title, $body); \ No newline at end of file