function tblog_get_page_content_list($guid) { $container_guid = NULL; $return = array(); $return['filter_context'] = $container_guid ? 'mine' : 'all'; $options = array('type' => 'object', 'subtype' => 'blog', 'full_view' => FALSE); $loggedin_userid = elgg_get_logged_in_user_guid(); if ($container_guid) { // access check for closed groups group_gatekeeper(); $options['container_guid'] = $container_guid; $container = get_entity($container_guid); if (!$container) { } $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name)); $crumbs_title = $container->name; elgg_push_breadcrumb($crumbs_title); if ($container_guid == $loggedin_userid) { $return['filter_context'] = 'mine'; } else { if (elgg_instanceof($container, 'group')) { $return['filter'] = false; } else { // do not show button or select a tab when viewing someone else's posts $return['filter_context'] = 'none'; } } } else { $return['filter_context'] = 'all'; $return['title'] = elgg_echo('blogbook:select a blog'); elgg_pop_breadcrumb(); elgg_push_breadcrumb(elgg_echo('blog:blogs')); } //elgg_register_title_button(); // show all posts for admin or users looking at their own blogs // show only published posts for other users. if (!(elgg_is_admin_logged_in() || elgg_is_logged_in() && $container_guid == $loggedin_userid)) { $options['metadata_name_value_pairs'] = array(array('name' => 'status', 'value' => 'published')); } $tblog = get_entity($guid); $bidlist = explode(",", $tblog->bids); foreach ($bidlist as $value) { $aBlog = get_entity($value); $form_data .= "<input type='checkbox' name='bids[]' value='{$value}' /> {$aBlog->title}<br />"; } $form_data .= "<input type='hidden' name='guid' value='{$guid}' />"; // TODO the problem is thst $guid is empty $form_data .= elgg_view('input/submit', array('value' => elgg_echo('Remove'))); $list .= elgg_view("input/form", array("body" => $form_data, "action" => "/action/blogbook/remove", "id" => "tblog_insert_form", "class" => "elgg-form-alt")); if (!$list) { $return['content'] = elgg_echo('blog:none'); } else { $return['content'] = $list; } return $return; }
/** * Get page components to list a user's or all blogs. * * @param int $container_guid The GUID of the page owner or NULL for all blogs * @return array */ function blog_get_page_content_list($container_guid = NULL) { $return = array(); $return['filter_context'] = $container_guid ? 'mine' : 'all'; $order = get_input('order'); $order ? $order = $order : ($order = "DESC"); $order == "DESC" ? $currentSort = elgg_echo('hj:forum:latest') : ($currentSort = elgg_echo('hj:forum:oldest')); $options = array('type' => 'object', 'subtype' => 'blog', 'full_view' => false, 'order_by' => 'e.time_created ' . $order); $current_user = elgg_get_logged_in_user_entity(); if ($container_guid) { // access check for closed groups group_gatekeeper(); $options['container_guid'] = $container_guid; $container = get_entity($container_guid); if (!$container) { } $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name)); $crumbs_title = $container->name; elgg_push_breadcrumb($crumbs_title); if ($current_user && $container_guid == $current_user->guid) { $return['filter_context'] = 'mine'; } else { if (elgg_instanceof($container, 'group')) { $return['filter'] = false; } else { // do not show button or select a tab when viewing someone else's posts $return['filter_context'] = 'none'; } } $list = "<div id='filter-dropdown' class='clearfix blog-filter'><span>" . elgg_echo('blog:sort') . "</span><a href=''>" . $currentSort . "</a>\n\t\t\t<ul>\n\t\t\t\t<li>" . elgg_view('output/url', array('href' => 'blog/group/' . $container->guid . '/all?order=DESC', 'text' => '' . elgg_echo('hj:forum:latest') . '')) . "</li>\n\t\t\t\t<li>" . elgg_view('output/url', array('href' => 'blog/group/' . $container->guid . '/all?order=ASC', 'text' => '' . elgg_echo('hj:forum:oldest') . '')) . "</li>\n\t\t\t</ul>\n\t\t</div>"; } else { $return['filter_context'] = 'all'; $return['title'] = elgg_echo('blog:title:all_blogs'); elgg_pop_breadcrumb(); elgg_push_breadcrumb(elgg_echo('blog:blogs')); } elgg_register_title_button(); // show all posts for admin or users looking at their own blogs // show only published posts for other users. $show_only_published = true; if ($current_user) { if ($current_user->guid == $container_guid || $current_user->isAdmin()) { $show_only_published = false; } } if ($show_only_published) { $options['metadata_name_value_pairs'] = array(array('name' => 'status', 'value' => 'published')); } $list .= elgg_list_entities_from_metadata($options); if (!$list) { $return['content'] = elgg_echo('blog:none'); } else { $return['content'] = $list; } return $return; }
/** * Get page components to list a user's or all blogs. * * @param int $container_guid The GUID of the page owner or NULL for all blogs * @return array */ function blog_get_page_content_list($container_guid = NULL) { $return = array(); $return['filter_context'] = $container_guid ? 'mine' : 'all'; $options = array('type' => 'object', 'subtype' => 'blog', 'full_view' => false); $current_user = elgg_get_logged_in_user_entity(); if ($container_guid) { // access check for closed groups group_gatekeeper(); // COLDTRICK: FIXES listing of users blogs $container = get_entity($container_guid); if ($container instanceof ElggGroup) { $options['container_guid'] = $container_guid; } else { $options['owner_guid'] = $container_guid; } $return['title'] = elgg_echo('blog:title:user_blogs', array($container->name)); $crumbs_title = $container->name; elgg_push_breadcrumb($crumbs_title); if ($current_user && $container_guid == $current_user->guid) { $return['filter_context'] = 'mine'; } else { if (elgg_instanceof($container, 'group')) { $return['filter'] = false; } else { // do not show button or select a tab when viewing someone else's posts $return['filter_context'] = 'none'; } } } else { $return['filter_context'] = 'all'; $return['title'] = elgg_echo('blog:title:all_blogs'); elgg_pop_breadcrumb(); elgg_push_breadcrumb(elgg_echo('blog:blogs')); } elgg_register_title_button(); // show all posts for admin or users looking at their own blogs // show only published posts for other users. $show_only_published = true; if ($current_user) { if ($current_user->guid == $container_guid || $current_user->isAdmin()) { $show_only_published = false; } } if ($show_only_published) { $options['metadata_name_value_pairs'] = array(array('name' => 'status', 'value' => 'published')); } $list = elgg_list_entities_from_metadata($options); if (!$list) { $return['content'] = elgg_echo('blog:none'); } else { $return['content'] = $list; } return $return; }
/** * Get page components to list a user's or all podcast episodes. * * @param int $container_guid The GUID of the page owner or NULL for all podcasts * * @return array */ function podcasts_get_page_content_list($container_guid = NULL) { $return = array(); $return['filter_context'] = $container_guid ? 'mine' : 'all_episodes'; $options = array('type' => 'object', 'subtype' => 'podcast', 'full_view' => false, 'podcast_list_class' => 'elgg-list-podcast-episodes', 'podcast_item_class' => 'elgg-podcast-episode'); $current_user = elgg_get_logged_in_user_entity(); if ($container_guid) { // access check for closed groups group_gatekeeper(); $options['container_guid'] = $container_guid; $container = get_entity($container_guid); if (!$container) { } $return['title'] = elgg_echo('podcasts:title:owner_podcasts', array($container->name)); $crumbs_title = $container->name; elgg_push_breadcrumb($crumbs_title); if ($current_user && $container_guid == $current_user->guid) { $return['filter_context'] = 'mine'; } else { if (elgg_instanceof($container, 'group')) { $return['filter'] = false; } else { // do not show button or select a tab when viewing someone else's podcasts $return['filter_context'] = 'none'; } } // Default feed $return['feed_description'] = elgg_echo('podcasts:feed:description', array($container->name)); elgg_extend_view('page/elements/owner_block', 'podcasts/info_sidebar', 1); //$return['sidebar'] = elgg_view('podcasts/info_sidebar'); } else { set_input('show_podcast_container', 1); $return['filter_context'] = 'all'; $return['title'] = elgg_echo('podcasts:title:allpodcastepisodes'); elgg_pop_breadcrumb(); elgg_push_breadcrumb(elgg_echo('podcasts'), 'podcasts/all'); elgg_push_breadcrumb(elgg_echo('podcasts:filter:allepisodes')); } elgg_register_title_button(); $list = elgg_list_entities($options, 'elgg_get_entities_from_metadata', 'podcasts_list'); if ($list) { $return['content'] = $list; } else { if (elgg_get_viewtype() == 'default') { $return['content'] = elgg_echo('podcasts:episodes:none'); } } return $return; }
/** * gvchat page handler * isegoria chat: chat * group chat: chat/group/<guid> */ function gvchat_page_handler($page) { $pages = dirname(__FILE__) . '/pages'; if (isset($page[0])) { switch ($page[0]) { case 'group': if (isset($page[1])) { group_gatekeeper(); set_input('groupguid', $page[1]); include "{$pages}/group.php"; } break; default: return false; } } else { include "{$pages}/isegoria.php"; } return true; }
/** * Messageboard dispatcher for flat message board. * Profile (and eventually group) widgets handle their own. * * URLs take the form of * User's messageboard: messageboard/owner/<username> * Y's history of posts on X's board: messageboard/owner/<X>/history/<Y> * New post: messageboard/add/<guid> (container: user or group) * Group messageboard: messageboard/group/<guid>/all (not implemented) * * @param array $page Array of page elements * @return bool */ function messageboard_page_handler($page) { $new_section_one = array('owner', 'add', 'group'); // if the first part is a username, forward to new format if (isset($page[0]) && !in_array($page[0], $new_section_one) && get_user_by_username($page[0])) { register_error(elgg_echo("changebookmark")); $url = "messageboard/owner/{$page[0]}"; forward($url); } $pages = dirname(__FILE__) . '/pages/messageboard'; switch ($page[0]) { case 'owner': //@todo if they have the widget disabled, don't allow this. $owner_name = elgg_extract(1, $page); $owner = get_user_by_username($owner_name); set_input('page_owner_guid', $owner->guid); $history = elgg_extract(2, $page); $username = elgg_extract(3, $page); if ($history && $username) { set_input('history_username', $username); } include "{$pages}/owner.php"; break; case 'add': $container_guid = elgg_extract(1, $page); set_input('container_guid', $container_guid); include "{$pages}/add.php"; break; case 'group': group_gatekeeper(); $owner_guid = elgg_extract(1, $page); set_input('page_owner_guid', $owner_guid); include "{$pages}/owner.php"; break; default: return false; } return true; }
/** * ARLean Message Board dispatcher for flat message board. * * Group messageboard: wespot_msg/group/<guid>/all * * @param array $page Array of page elements * @return bool */ function wespot_msg_page_handler($page) { elgg_load_library('elgg:wespot_arlearn'); elgg_load_library('elgg:wespot_msg'); $pages = dirname(__FILE__) . '/pages/wespot_msg'; //elgg_load_library('elgg:wespot_arlearnservices'); switch ($page[0]) { case 'group': group_gatekeeper(); $owner_guid = elgg_extract(1, $page); elgg_set_page_owner_guid($owner_guid); //nasko set_input('page_owner_guid', $owner_guid); $threadId = elgg_extract(2, $page); set_input('threadId', $threadId); include "{$pages}/group.php"; break; default: return false; } return true; }
function gvthewire_route_handler($hook, $type, $return_value, $params) { /** * $return_value contains: * $return_value['handler'] => requested handler * $return_value['segments'] => url parts ($page) */ $result = $return_value; if (!empty($return_value) && is_array($return_value)) { $page = $return_value['segments']; $base_dir = elgg_get_plugins_path() . 'gvthewire/pages/'; switch ($page[0]) { case "group": if (isset($page[1])) { group_gatekeeper(); set_input('container_guid', $page[1]); include "{$base_dir}/group.php"; $result = false; } break; case "owner": include "{$base_dir}/owner.php"; $result = false; break; case "all": case "friends": // remove this url to avoid sitewite thewire access forward(REFERER); $result = false; break; default: break; } } return $result; }
/** * Dispatches event calendar pages. * * URLs take the form of * Site event calendar: event_calendar/list/<start_date>/<display_mode>/<filter_context>/<region> * Single event: event_calendar/view/<event_guid>/<title> * New event: event_calendar/add * Edit event: event_calendar/edit/<event_guid> * Group event calendar: event_calendar/group/<group_guid>/<start_date>/<display_mode>/<filter_context>/<region> * Add group event: event_calendar/add/<group_guid> * Review requests: event_calendar/review_requests/<event_guid> * Display event subscribers: event_calendar/display_users/<event_guid> * Events for a user's calendar: event_calendar/owner/<username>/<start_date>/<display_mode>/<filter_context>/<region> * * Title is ignored * * @param array $page * @return NULL */ function event_calendar_page_handler($page) { elgg_load_library('elgg:event_calendar'); $page_type = $page[0]; switch ($page_type) { case 'list': if (isset($page[1])) { $start_date = $page[1]; if (isset($page[2])) { $display_mode = $page[2]; if (isset($page[3])) { $filter_mode = $page[3]; if (isset($page[4])) { $region = $page[4]; } else { $region = ''; } } else { $filter_mode = ''; } } else { $display_mode = ''; } } else { $start_date = 0; } echo event_calendar_get_page_content_list($page_type, 0, $start_date, $display_mode, $filter_mode, $region); break; case 'view': echo event_calendar_get_page_content_view($page[1]); break; case 'view_light_box': echo event_calendar_get_page_content_view($page[1], TRUE); break; case 'display_users': echo event_calendar_get_page_content_display_users($page[1]); break; case 'manage_users': echo event_calendar_get_page_content_manage_users($page[1]); break; case 'schedule': case 'add': if (isset($page[1])) { group_gatekeeper(); $group_guid = $page[1]; } else { gatekeeper(); $group_guid = 0; } echo event_calendar_get_page_content_edit($page_type, $group_guid, $page[2]); break; case 'edit': gatekeeper(); echo event_calendar_get_page_content_edit($page_type, $page[1]); break; case 'group': group_gatekeeper(); if (isset($page[1])) { $group_guid = $page[1]; if (isset($page[2])) { $start_date = $page[2]; if (isset($page[3])) { $display_mode = $page[3]; if (isset($page[4])) { $filter_mode = $page[4]; if (isset($page[5])) { $region = $page[5]; } else { $region = ''; } } else { $filter_mode = ''; } } else { $display_mode = ''; } } else { $start_date = ''; } } else { $group_guid = 0; } echo event_calendar_get_page_content_list($page_type, $group_guid, $start_date, $display_mode, $filter_mode, $region); break; case 'owner': if (isset($page[1])) { $username = $page[1]; $user = get_user_by_username($username); $user_guid = $user->guid; if (isset($page[2])) { $start_date = $page[2]; if (isset($page[3])) { $display_mode = $page[3]; if (isset($page[4])) { $filter_mode = $page[4]; if (isset($page[5])) { $region = $page[5]; } else { $region = ''; } } else { $filter_mode = ''; } } else { $display_mode = ''; } } else { $start_date = ''; } } else { $group_guid = 0; } echo event_calendar_get_page_content_list($page_type, $user_guid, $start_date, $display_mode, $filter_mode, $region); break; case 'review_requests': gatekeeper(); echo event_calendar_get_page_content_review_requests($page[1]); break; case 'get_fullcalendar_events': echo event_calendar_get_page_content_fullcalendar_events($page[1], $page[2], $page[3], $page[4]); break; default: return FALSE; } return TRUE; }
/** * Dispatcher for bookmarks. * * URLs take the form of * All bookmarks: bookmarks/all * User's bookmarks: bookmarks/owner/<username> * Friends' bookmarks: bookmarks/friends/<username> * View bookmark: bookmarks/view/<guid>/<title> * New bookmark: bookmarks/add/<guid> (container: user, group, parent) * Edit bookmark: bookmarks/edit/<guid> * Group bookmarks: bookmarks/group/<guid>/all * Bookmarklet: bookmarks/bookmarklet/<guid> (user) * * Title is ignored * * @param array $page */ function bookmarks_page_handler($page) { elgg_load_library('elgg:bookmarks'); elgg_push_breadcrumb(elgg_echo('bookmarks'), 'bookmarks/all'); // old group usernames if (substr_count($page[0], 'group:')) { preg_match('/group\\:([0-9]+)/i', $page[0], $matches); $guid = $matches[1]; if ($entity = get_entity($guid)) { bookmarks_url_forwarder($page); } } // user usernames $user = get_user_by_username($page[0]); if ($user) { bookmarks_url_forwarder($page); } $pages = dirname(__FILE__) . '/pages/bookmarks'; switch ($page[0]) { case "all": include "{$pages}/all.php"; break; case "owner": include "{$pages}/owner.php"; break; case "friends": include "{$pages}/friends.php"; break; case "read": case "view": set_input('guid', $page[1]); include "{$pages}/view.php"; break; case "add": gatekeeper(); include "{$pages}/add.php"; break; case "edit": gatekeeper(); set_input('guid', $page[1]); include "{$pages}/edit.php"; break; case 'group': group_gatekeeper(); include "{$pages}/owner.php"; break; case "bookmarklet": set_input('container_guid', $page[1]); include "{$pages}/bookmarklet.php"; break; default: return false; } elgg_pop_context(); return true; }
/** * View a discussion topic * * @param int $guid GUID of topic */ function discussion_handle_view_page($guid) { // We now have RSS on topics global $autofeed; $autofeed = true; $topic = get_entity($guid); if (!$topic) { register_error(elgg_echo('noaccess')); $_SESSION['last_forward_from'] = current_page_url(); forward(''); } $group = $topic->getContainerEntity(); if (!$group) { register_error(elgg_echo('group:notfound')); forward(); } elgg_set_page_owner_guid($group->getGUID()); group_gatekeeper(); elgg_push_breadcrumb($group->name, "discussion/owner/{$group->guid}"); elgg_push_breadcrumb($topic->title); $content = elgg_view_entity($topic, array('full_view' => true)); if ($topic->status == 'closed') { $content .= elgg_view('discussion/replies', array('entity' => $topic, 'show_add_form' => false)); $content .= elgg_view('discussion/closed'); } elseif ($group->canWriteToContainer(0, 'object', 'groupforumtopic') || elgg_is_admin_logged_in()) { $content .= elgg_view('discussion/replies', array('entity' => $topic, 'show_add_form' => true)); } else { $content .= elgg_view('discussion/replies', array('entity' => $topic, 'show_add_form' => false)); } $params = array('content' => $content, 'title' => $topic->title, 'sidebar' => elgg_view('discussion/sidebar'), 'filter' => ''); $body = elgg_view_layout('content', $params); echo elgg_view_page($topic->title, $body); }
/** * Categories page handler * * @param array $page Array of url segments * @return boolean */ function page_handler($page) { switch ($page[0]) { case 'all': $container = get_entity($page[1]); if (!elgg_instanceof($container)) { $container = elgg_get_site_entity(); } elgg_push_breadcrumb(elgg_echo('categories')); $title = elgg_echo('categories'); $content = elgg_view('framework/categories/all', array('container' => $container)); $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'filter' => false)); echo elgg_view_page($title, $layout); return true; break; // categories/manage/$container_guid // categories/manage/$container_guid case 'manage': $container = get_entity($page[1]); if (!elgg_instanceof($container)) { $container = elgg_get_site_entity(); } // Categories can only be contained by the site or a group if (!elgg_instanceof($container, 'site') && !elgg_instanceof($container, 'group')) { return false; } // User should be able to edit an entity to add categories to it if (!$container->canEdit()) { return false; } if (elgg_instanceof($container, 'group')) { elgg_set_page_owner_guid($container->guid); $title = elgg_echo('categories:group', array($container->name)); $layout = 'one_sidebar'; $shell = 'default'; } else { elgg_set_context('admin'); $title = elgg_echo('categories:site'); $layout = 'admin'; $shell = 'admin'; } $content = elgg_view_form('categories/manage', array('enctype' => 'multipart/form-data'), array('container' => $container)); $layout = elgg_view_layout($layout, array('title' => $title, 'content' => $content)); echo elgg_view_page($title, $layout, $shell); return true; break; case 'view': $guid = elgg_extract(1, $page); $entity = get_entity($guid); if (!elgg_instanceof($entity, 'object', HYPECATEGORIES_SUBTYPE)) { return false; } $crumbs = get_hierarchy($entity->guid, false); if ($crumbs) { foreach ($crumbs as $crumb) { if (elgg_instanceof($crumb)) { elgg_push_breadcrumb($crumb->title, $crumb->getURL()); $container = $crumb->getContainerEntity(); if (elgg_instanceof($container, 'group')) { elgg_set_page_owner_guid($container->guid); } } } } elgg_push_breadcrumb($entity->title); $title = elgg_echo('categories:category', array($entity->title)); $content = elgg_view_entity($entity, array('full_view' => true)); $sidebar = elgg_view('framework/categories/filter', array('entity' => $entity)); $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'sidebar' => $sidebar, 'filter' => false)); echo elgg_view_page($title, $layout); return true; break; case 'group': if (!HYPECATEGORIES_GROUP_CATEGORIES) { return false; } $group_guid = elgg_extract(1, $page); $guid = elgg_extract(2, $page); $entity = get_entity($guid); elgg_set_page_owner_guid($group_guid); group_gatekeeper(); if (!elgg_instanceof($entity, 'object', HYPECATEGORIES_SUBTYPE)) { return false; } $crumbs = get_hierarchy($entity->guid, false); if ($crumbs) { foreach ($crumbs as $crumb) { elgg_push_breadcrumb($crumb->title, $crumb->getURL()); } } elgg_push_breadcrumb($entity->title); $title = elgg_echo('categories:category', array($entity->title)); $content = elgg_view_entity($entity, array('full_view' => true)); $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'filter' => false)); echo elgg_view_page($title, $layout); return true; break; case 'icon': $entity = get_entity($page[1]); $size = strtolower(elgg_extract(2, $page, 'medium')); if (!elgg_instanceof($entity)) { return false; } $size = strtolower(get_input('size')); if (!array_key_exists($size, elgg_get_config('icon_sizes'))) { $size = 'medium'; } $success = false; $filename = "icons/" . $entity->getGUID() . $size . ".jpg"; $filehandler = new ElggFile(); $filehandler->owner_guid = $entity->owner_guid; $filehandler->setFilename($filename); if ($filehandler->open("read")) { if ($contents = $filehandler->read($filehandler->size())) { $success = true; } } header("Content-type: image/jpeg"); header('Expires: ' . date('r', time() + 864000)); header("Pragma: public"); header("Cache-Control: public"); header("Content-Length: " . strlen($contents)); echo $contents; return true; break; } return false; }
/** * Dispatcher for answers. * * URLs take the form of * All questions: answers/all * User's questions: answers/owner/<username> * Friends' questions: answers/friends/<username> * View questions: answers/view/<guid>/<title> * New questions: answers/add/<guid> (container: user, group, parent) * Edit questions: answers/edit/<guid> * Group questions: answers/group/<guid>/all * * Title is ignored * @param array $page From the page_handler function * @return true|false Depending on success */ function answers_page_handler($page) { elgg_load_library('answers:utilities'); if (!isset($page[0])) { $page[0] = 'all'; } elgg_push_breadcrumb(elgg_echo('answers'), 'answers/all'); $pages = dirname(__FILE__) . '/pages/answers'; switch ($page[0]) { case "read": case "view": set_input('question_id', $page[1]); include "{$pages}/view.php"; break; case "owner": include "{$pages}/owner.php"; break; case "friends": include "{$pages}/friends.php"; break; case "add": gatekeeper(); include "{$pages}/add.php"; break; case "edit": set_input('question_guid', $page[1]); gatekeeper(); include "{$pages}/edit.php"; break; case "group": group_gatekeeper(); include "{$pages}/owner.php"; break; case "all": case "world": include "{$pages}/world.php"; break; default: return false; break; } return true; }
/** * 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, 'filter' => ''); $body = elgg_view_layout('content', $params); echo elgg_view_page($title, $body); }
/** * Serves pages for URLs like: * * All videos: videos/all * User's videos: videos/owner/<username> * Friends' videos: videos/friends/<username> * View video: videos/view/<guid>/<title> * New video: videos/add/<guid> * Edit video: videos/edit/<guid> * Group videos: videos/group/<guid>/owner * * @param string $page */ function simplekaltura_page_handler($page) { elgg_push_context('simplekaltura'); elgg_push_breadcrumb(elgg_echo('videos'), 'videos'); if (!isset($page[0])) { $page[0] = 'all'; } $page_type = $page[0]; $pages_dir = dirname(__FILE__) . '/pages/simplekaltura'; switch ($page_type) { case 'owner': include "{$pages_dir}/owner.php"; break; case 'friends': include "{$pages_dir}/friends.php"; break; case 'view': set_input('guid', elgg_extract(1, $page)); include "{$pages_dir}/view.php"; break; case 'add': gatekeeper(); group_gatekeeper(); include "{$pages_dir}/add.php"; break; case 'edit': set_input('guid', elgg_extract(1, $page)); include "{$pages_dir}/edit.php"; break; case 'group': group_gatekeeper(); include "{$pages_dir}/owner.php"; break; case 'all': default: include "{$pages_dir}/all.php"; break; } return true; }
/** * Digital products pagehandler * * @param array $page Array of URL segments * @param string $handler Handler name * @return boolean */ function page_handler($page, $handler) { elgg_push_breadcrumb(elgg_echo('places'), $handler); $context = elgg_extract(0, $page, 'all'); switch ($context) { case 'all': case 'featured': elgg_register_title_button('places', 'create'); $title = elgg_echo("places:{$context}"); elgg_push_breadcrumb($title); $vars = array('filter_context' => $context); $content = elgg_view('framework/places/list', $vars); $filter = elgg_view('framework/places/filter', $vars); $sidebar = elgg_view('framework/places/sidebar', $vars); break; case 'owner': $username = $page[1]; if ($username) { $user = get_user_by_username($username); } else { if (elgg_is_logged_in()) { $user = elgg_get_logged_in_user_entity(); } } elgg_set_page_owner_guid($user->guid); if (elgg_get_logged_in_user_guid() == $user->guid) { elgg_register_title_button('places', 'create'); $title = elgg_echo('places:mine'); } else { $title = elgg_echo('places:owner', array($user->name)); } elgg_push_breadcrumb($user->name, $handler . '/owner/' . $user->username); $vars = array('filter_context' => $context); $content = elgg_view('framework/places/list', $vars); $filter = elgg_view('framework/places/filter', $vars); $sidebar = elgg_view('framework/places/sidebar', $vars); break; case 'group': $group = get_entity($page[1]); if (!elgg_instanceof($group, 'group')) { return false; } elgg_set_page_owner_guid($group->guid); if ($group->canWriteToContainer(0, 'object', Place::SUBTYPE)) { elgg_register_title_button('places', 'create'); } elgg_push_breadcrumb($group->name, $handler . '/group/' . $group->guid); $content = elgg_view('framework/places/group', $vars); $filter = false; $sidebar = false; break; case 'bookmarked': gatekeeper(); $username = $page[1]; if ($username) { $user = get_user_by_username($username); } else { if (elgg_is_logged_in()) { $user = elgg_get_logged_in_user_entity(); } } if (!$user->canEdit()) { return false; } elgg_set_page_owner_guid($user->guid); if (elgg_get_logged_in_user_guid() == $user->guid) { elgg_register_title_button('places', 'create'); $title = elgg_echo('places:bookmarked:mine'); } else { $title = elgg_echo('places:bookmarked:owner', array($user->name)); } elgg_push_breadcrumb($user->name, $handler . '/owner/' . $user->username); elgg_push_breadcrumb($title, $handler . '/bookmarked/' . $user->username); $vars = array('filter_context' => $context); $content = elgg_view('framework/places/list', $vars); $filter = elgg_view('framework/places/filter', $vars); $sidebar = elgg_view('framework/places/sidebar', $vars); break; case 'view': case 'profile': $entity_guid = $page[1]; $entity = get_entity($entity_guid); if (!$entity instanceof Place) { return false; } $container = $entity->getContainerEntity(); if (elgg_instanceof($container, 'group')) { elgg_set_page_owner_guid($container->guid); group_gatekeeper(true); elgg_push_breadcrumb($container->name, $handler . '/group/' . $container->guid); } else { $owner = $entity->getOwnerEntity(); elgg_push_breadcrumb($owner->name, $handler . '/owner/' . $owner->username); } elgg_set_page_owner_guid($entity->guid); $title = $entity->title; elgg_push_breadcrumb($title); $header_override = ''; $content = elgg_view('framework/places/profile', array('entity' => $entity)); $sidebar = elgg_view('framework/places/sidebar', array('entity' => $entity)); $filter = false; break; case 'create': $container_guid = $page[1]; $container = get_entity($container_guid); if (elgg_instanceof($container) && !$container->canWriteToContainer(0, 'object', Place::SUBTYPE)) { return false; } $title = elgg_echo('places:create'); $content = elgg_view('framework/places/edit', array('container' => $container)); $filter = false; $sidebar = elgg_view('framework/places/sidebar', array('container' => $container)); break; case 'edit': $entity_guid = $page[1]; $entity = get_entity($entity_guid); if (!$entity instanceof Place || !$entity->canEdit()) { return false; } $title = elgg_echo('places:edit', array($entity->title)); $content = elgg_view('framework/places/edit', array('entity' => $entity)); $filter = false; $sidebar = elgg_view('framework/places/sidebar', array('entity' => $entity)); break; case 'icon': $guid = elgg_extract(1, $page, 0); $size = elgg_extract(2, $page, 'medium'); $entity = get_entity($guid); $config = get_icon_sizes($entity); if (!array_key_exists($size, $config)) { $size = 'medium'; } IconHandler::outputRawIcon($entity->guid, $size); break; } if ($content) { if (elgg_is_xhr()) { echo $content; } else { $layout = elgg_view_layout('content', array('header_override' => isset($header_override) ? $header_override : null, 'title' => $title, 'content' => $content, 'filter' => $filter, 'sidebar' => $sidebar)); echo elgg_view_page($title, $layout); } return true; } return false; }
function questions_page_handler($segments) { elgg_push_breadcrumb(elgg_echo('questions'), "/questions/all"); $pages = dirname(__FILE__) . "/pages/questions"; switch ($segments[0]) { case "all": include "{$pages}/all.php"; break; case "owner": include "{$pages}/owner.php"; break; case "friends": gatekeeper(); include "{$pages}/friends.php"; break; case "view": set_input('guid', $segments[1]); include "{$pages}/view.php"; break; case "add": gatekeeper(); include "{$pages}/add.php"; break; case "edit": gatekeeper(); set_input('guid', $segments[1]); include "{$pages}/edit.php"; break; case 'group': group_gatekeeper(); include "{$pages}/owner.php"; break; default: return false; } elgg_pop_context(); return true; }
/** * Dispatches amapnews pages. * * @param array $page * @return bool */ function amapnews_page_handler($page) { elgg_push_breadcrumb(elgg_echo('amapnews'), 'news'); if (!isset($page[0])) { $page[0] = 'all'; } $vars = array(); $vars['page'] = $page[0]; $resource_vars = array(); switch ($page[0]) { case "add": $resource_vars['guid'] = elgg_extract(1, $page); echo elgg_view_resource('amapnews/add', $resource_vars); break; case "photo_view": $resource_vars['guid'] = elgg_extract(1, $page); $resource_vars['size'] = elgg_extract(2, $page); $resource_vars['tu'] = elgg_extract(3, $page); $resource_vars['ia'] = elgg_extract(4, $page); echo elgg_view_resource('amapnews/photo_view', $resource_vars); break; case "add_existed": $resource_vars['cguid'] = elgg_extract(1, $page); echo elgg_view_resource('amapnews/add_existed', $resource_vars); break; case "edit": $resource_vars['guid'] = elgg_extract(1, $page); echo elgg_view_resource('amapnews/edit', $resource_vars); break; case "view": $resource_vars['guid'] = elgg_extract(1, $page); echo elgg_view_resource('amapnews/view', $resource_vars); break; case "owner": echo elgg_view_resource('amapnews/owner'); break; case "group": group_gatekeeper(); echo elgg_view_resource('amapnews/owner'); break; case "all": echo elgg_view_resource('amapnews/all'); break; default: echo elgg_view_resource('amapnews/all'); return false; } elgg_pop_context(); return true; }
<?php $group = get_entity(get_input('group_guid')); $user = elgg_get_logged_in_user_entity(); $offset = get_input('offset'); $options['offset'] = $offset; $base_url = get_input('base_url'); if (!$group || !elgg_instanceof($group, 'group')) { register_error(elgg_echo('groups:notfound')); exit; } //elgg_load_library('elgg:groups'); if (group_gatekeeper(false)) { if (!$group instanceof ElggGroup) { exit; } //put test in if user not part of group don't show composer otherwise goes in lalaland $db_prefix = elgg_get_config('dbprefix'); $options = array('joins' => array("JOIN {$db_prefix}entities e ON e.guid = rv.object_guid"), 'wheres' => array("(e.container_guid = {$group->guid} OR rv.object_guid = {$group->guid}) AND rv.action_type != 'vote' AND rv.action_type != 'join'")); $options['body_class'] = 'new-feed'; $options['base_url'] = $base_url; $activity = elgg_list_river($options); if (!$activity) { $activity = elgg_view('output/longtext', array('value' => elgg_echo('groups:activity:none'))); } echo $activity; }
/** * View a crud object * * @param CrudTemplate $crud Crud template object * @param int $guid GUID of a crud object */ function crud_handle_view_page($crud, $guid) { // We now have RSS on assemblies global $autofeed; $autofeed = true; $crud_type = $crud->crud_type; $entity = get_entity($guid); $parent = $entity->getParentEntity(); if ($parent instanceof ElggGroup) { $group = $parent; $parent = NULL; } else { $group = get_entity($entity->container_guid); } if (!$group) { register_error(elgg_echo('noaccess')); $_SESSION['last_forward_from'] = current_page_url(); forward(''); } /*$group = $entity->getContainerEntity(); if (!$group) { register_error(elgg_echo('groups:notfound')); forward(); }*/ if (!empty($crud->children_type) && $group->canWriteToContainer()) { elgg_set_page_owner_guid($guid); elgg_register_menu_item('title', array('name' => 'add', 'href' => "{$crud->children_type}/add/{$guid}", 'text' => elgg_echo("{$crud->children_type}:add"), 'link_class' => 'elgg-button elgg-button-action')); } elgg_trigger_plugin_hook("crud:{$crud_type}:view_buttons", 'view_buttons', array('crud' => $crud, 'type' => $crud_type, 'entity' => $entity), $location); elgg_set_page_owner_guid($entity->container_guid); group_gatekeeper(); crud_push_breadcrumb($entity, $entity, $crud); $content = elgg_view_entity($entity, array('full_view' => true)); $content .= elgg_view_comments($entity); $params = array('content' => $content, 'title' => $entity->getTitle(true), 'filter' => ''); $sidebar = elgg_view('crud/tagcloud_block', array('subtypes' => $crud->crud_type, 'owner_guid' => elgg_get_page_owner_guid())); if (isset($params['sidebar'])) { $params['sidebar'] .= $sidebar; } else { $params['sidebar'] = $sidebar; } $body = elgg_view_layout('content', $params); echo elgg_view_page($entity->title, $body); }
/** * Dispatcher for videos. * URLs take the form of * All videos: videos/all * User's videos: videos/owner/<username> * Friends' videos: videos/friends/<username> * View video: videos/view/<guid>/<title> * New video: videos/add/<guid> (container: user, group, parent) * Edit video: videos/edit/<guid> * Group videos: videos/group/<guid>/owner * Title is ignored * @param array $page */ function videos_page_handler($page) { elgg_load_library('elgg:videos'); elgg_push_breadcrumb(elgg_echo('videos'), 'videos/mostviewed'); elgg_push_context('videos'); if (substr_count($page[0], 'group:')) { preg_match('/group\\:([0-9]+)/i', $page[0], $matches); $guid = $matches[1]; if ($entity = get_entity($guid)) { videos_url_forwarder($page); } } $user = get_user_by_username($page[0]); if ($user) { videos_url_forwarder($page); } $pages = dirname(__FILE__) . '/pages/videos'; switch ($page[0]) { case "all": include "{$pages}/all.php"; break; case "owner": include "{$pages}/owner.php"; break; case "friends": include "{$pages}/friends.php"; break; case "playlist": include "{$pages}/playlist.php"; break; case "read": case "view": set_input('guid', $page[1]); include "{$pages}/view.php"; break; case "add": gatekeeper(); include "{$pages}/add.php"; break; case "edit": gatekeeper(); set_input('guid', $page[1]); include "{$pages}/edit.php"; break; case 'featured': include "{$pages}/featured.php"; break; case 'youtube': include "{$pages}/youtube.php"; break; case 'mostviewed': include "{$pages}/mostviewed.php"; break; case 'popular': file_register_toggle(); include "{$pages}/popular.php"; break; case 'group': group_gatekeeper(); include "{$pages}/owner.php"; break; default: return false; } elgg_pop_context(); return true; }
/** * Dispatches vouchers pages. * * @param array $page * @return bool */ function vouchers_page_handler($page) { elgg_push_breadcrumb(elgg_echo('vouchers'), 'vouchers/all'); // user usernames //$user = get_user_by_username($page[0]); //if ($user) { // bookmarks_url_forwarder($page); // } $vars = array(); $vars['page'] = $page[0]; $base = elgg_get_plugins_path() . 'vouchers/pages/vouchers'; switch ($page[0]) { case "all": vouchers_register_toggle(); include "{$base}/all.php"; break; case "owner": vouchers_register_toggle(); include "{$base}/owner.php"; break; case "friends": vouchers_register_toggle(); include "{$base}/friends.php"; break; case "mypurchases": vouchers_register_toggle(); include "{$base}/mypurchases.php"; break; case "view": set_input('guid', $page[1]); include "{$base}/view.php"; break; case "add": gatekeeper(); include "{$base}/addvoucher.php"; break; case "edit": gatekeeper(); set_input('guid', $page[1]); include "{$base}/editvoucher.php"; break; case "group": group_gatekeeper(); include "{$base}/owner.php"; break; default: include "{$base}/all.php"; return false; } elgg_pop_context(); return true; }
/** * Display individual's or group's videos */ function video_get_page_contents_owner() { // access check for closed groups group_gatekeeper(); $owner = elgg_get_page_owner_entity(); if (!$owner) { forward('video/all'); } elgg_push_breadcrumb($owner->name); elgg_register_title_button(); $params = array(); if ($owner->guid == elgg_get_logged_in_user_guid()) { // user looking at own videos $params['filter_context'] = 'mine'; } else { if (elgg_instanceof($owner, 'user')) { // someone else's videos // do not show select a tab when viewing someone else's posts $params['filter_context'] = 'none'; } else { // group videos $params['filter'] = ''; } } if (elgg_instanceof($owner, 'group')) { $title = elgg_echo('video:group'); } else { $title = elgg_echo("video:user", array($owner->name)); } // List videos $content = elgg_list_entities(array('types' => 'object', 'subtypes' => 'video', 'container_guid' => $owner->guid, 'limit' => 10, 'full_view' => FALSE)); if (!$content) { $content = elgg_echo("video:none"); } $sidebar = elgg_view('video/sidebar'); $params['content'] = $content; $params['title'] = $title; $params['sidebar'] = $sidebar; return $params; }
function izap_group_gatekeeper() { if (is_callable('elgg_group_gatekeeper')) { return elgg_group_gatekeeper(); } else { return group_gatekeeper(); } }
function polls_get_page_list($page_type, $container_guid = NULL) { global $autofeed; $autofeed = TRUE; $user = elgg_get_logged_in_user_entity(); $params = array(); $options = array('type' => 'object', 'subtype' => 'poll', 'full_view' => FALSE, 'limit' => 15); if ($page_type == 'group') { $group = get_entity($container_guid); if (!elgg_instanceof($group, 'group') || !polls_activated_for_group($group)) { forward(); } $params['title'] = elgg_echo('polls:group_polls:listing:title', array(htmlspecialchars($group->name))); $params['filter'] = ""; // set breadcrumb elgg_push_breadcrumb(elgg_echo("gvgroups:" . $group->grouptype . "groups"), "groups/" . $group->grouptype); elgg_push_breadcrumb($group->name, "polls/group/" . $group->guid); elgg_push_context('groups'); elgg_set_page_owner_guid($container_guid); group_gatekeeper(); $options['container_guid'] = $container_guid; $user_guid = elgg_get_logged_in_user_guid(); if (elgg_get_page_owner_entity()->canWriteToContainer($user_guid)) { elgg_register_menu_item('title', array('name' => 'add', 'href' => "polls/add/" . $container_guid, 'text' => elgg_echo('polls:add'), 'class' => 'elgg-button elgg-button-action')); } } else { switch ($page_type) { case 'owner': $options['owner_guid'] = $container_guid; $container_entity = get_user($container_guid); elgg_push_breadcrumb(elgg_echo("menu:home"), "dashboard"); elgg_push_breadcrumb($container_entity->name, "polls/owner/" . $container_entity->username); if ($user->guid == $container_guid) { $params['title'] = elgg_echo('polls:your'); $params['filter_context'] = 'mine'; } else { $params['title'] = elgg_echo('polls:not_me', array(htmlspecialchars($container_entity->name))); $params['filter_context'] = ""; } break; case 'friends': $container_entity = get_user($container_guid); $friends = get_user_friends($container_guid, ELGG_ENTITIES_ANY_VALUE, 0); $options['container_guids'] = array(); foreach ($friends as $friend) { $options['container_guids'][] = $friend->getGUID(); } $params['filter_context'] = 'friends'; $params['title'] = elgg_echo('polls:friends'); elgg_push_breadcrumb(elgg_echo("menu:home"), "dashboard"); elgg_push_breadcrumb($container_entity->name, "polls/owner/" . $container_entity->username); elgg_push_breadcrumb(elgg_echo('friends')); break; case 'all': elgg_push_breadcrumb(elgg_echo("menu:home"), "dashboard"); elgg_push_breadcrumb(elgg_echo("polls")); $params['filter_context'] = 'all'; $params['title'] = elgg_echo('item:object:poll'); break; } $polls_site_access = elgg_get_plugin_setting('site_access', 'polls'); if (elgg_is_logged_in() && $polls_site_access != 'admins' || elgg_is_admin_logged_in()) { elgg_register_menu_item('title', array('name' => 'add', 'href' => "polls/add", 'text' => elgg_echo('polls:add'), 'class' => 'elgg-button elgg-button-action')); } } if ($page_type == 'friends' && count($options['container_guids']) == 0) { // this person has no friends $params['content'] = ''; } else { $params['content'] = elgg_list_entities($options); } if (!$params['content']) { $params['content'] = elgg_echo('polls:none'); } $params['sidebar'] = elgg_view('polls/sidebar', array('page' => $page_type)); $body = elgg_view_layout("content", $params); return elgg_view_page($params['title'], $body); }
/** * Get page components to list a user's or all webinars. * * @param array $page * @return array */ function webinar_get_page_content_list($page = array()) { //compilcated input analysing $guid_type = $page[0]; $href = "webinar/{$guid_type}"; if (isset($page[1])) { if ($guid_type == 'all') { $guid = 0; $filter = $page[1]; } else { if ($guid_type == 'owner' || $guid_type == 'friends') { $user = get_user_by_username($page[1]); if ($user) { $guid = $user->getGUID(); } else { register_error(elgg_echo('webinar:error:not_user')); forward("webinar/all"); } $href .= "/{$page['1']}"; $filter = 'all'; } else { if ($guid_type = 'group' && is_numeric($page[1])) { $guid = $page[1]; $href .= "/{$page['1']}"; $filter = 'all'; } else { register_error(elgg_echo('webinar:error:wrong_request')); forward("webinar/all"); } } } if (isset($page[2])) { $filter = $page[2]; } } else { $guid = 0; $filter = 'all'; } $return = array(); $options = array('type' => 'object', 'subtype' => 'webinar', 'full_view' => FALSE); $filters = array('all', 'upcoming', 'running', 'done'); //if is valid filter set options for calling metadata search if ($filter != 'all' && in_array($filter, $filters)) { $options['metadata_names'] = 'status'; $options['metadata_values'] = $filter; } //register menu page foreach ($filters as $f) { elgg_register_menu_item('page', array('name' => "webinar:{$f}", 'text' => elgg_echo("webinar:menu:page:{$f}"), 'href' => $f == 'all' ? $href : "{$href}/{$f}", 'selected' => $f == $filter)); } if (!$guid) { $return['filter_context'] = 'all'; $return['title'] = elgg_echo('webinar:title:site:all'); //remove the link in the breadcrumb elgg_pop_breadcrumb(); elgg_push_breadcrumb(elgg_echo('webinar:webinars')); //create webinar button elgg_register_title_button(); } else { $entity = get_entity($guid); if ($entity) { switch ($guid_type) { case 'owner': case 'group': //set options $options['container_guid'] = $guid; //set filter if ($guid == elgg_get_logged_in_user_guid()) { $return['filter_context'] = 'mine'; $return['title'] = elgg_echo('webinar:title:user:mine'); elgg_register_title_button(); } else { if (elgg_instanceof($entity, 'group')) { // access check for closed groups group_gatekeeper(); $return['filter'] = false; $return['title'] = elgg_echo('webinar:title:group:all', array($entity->name)); elgg_register_title_button(); } else { // do not show button or select a tab when viewing someone else's posts $return['filter'] = false; $return['title'] = elgg_echo('webinar:title:user:all', array($entity->name)); } } //set breadcrumb elgg_push_breadcrumb($entity->name, $entity->getURL()); elgg_push_breadcrumb(elgg_echo('webinar:all')); break; case 'friends': //set options if (!($friends = get_user_friends($entity->getGUID(), ELGG_ENTITIES_ANY_VALUE, 0))) { register_error(elgg_echo('friends:none:you')); forward("webinar/all"); } else { foreach ($friends as $friend) { $options['container_guids'][] = $friend->getGUID(); } } //set filter if ($guid == elgg_get_logged_in_user_guid()) { $return['filter_context'] = 'friend'; $return['title'] = elgg_echo('webinar:title:friend:mine'); } else { $return['filter'] = false; $return['title'] = elgg_echo('webinar:title:friend:user', array($entity->name)); } //set breadcrumb elgg_push_breadcrumb($entity->name, "webinar/owner/{$entity->username}"); elgg_push_breadcrumb(elgg_echo('friends')); break; case 'all': default: register_error(elgg_echo('webinar:error:not_found')); forward("webinar/all"); break; } } else { register_error(elgg_echo('webinar:error:not_found')); forward("webinar/all"); } } $list = elgg_list_entities_from_metadata($options); if (!$list) { $return['content'] = elgg_echo('webinar:error:not_found'); } else { $return['content'] = $list; } return $return; }
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 * @author Curverider Ltd * @copyright Curverider Ltd 2008-2010 * @link http://elgg.com/ */ $group_guid = get_input('group_guid'); set_context('groups'); global $autofeed; $autofeed = true; $group = get_entity($group_guid); if ($group) { set_page_owner($group_guid); $title = $group->name; // Hide some items from closed groups when the user is not logged in. $view_all = true; $groupaccess = group_gatekeeper(false); if (!$groupaccess) { $view_all = false; } $area2 = elgg_view_title($title); $area2 .= elgg_view('group/group', array('entity' => $group, 'user' => $_SESSION['user'], 'full' => true)); if ($view_all) { //group profile 'items' - these are not real widgets, just contents to display $area2 .= elgg_view('groups/profileitems', array('entity' => $group)); //group members $area3 = elgg_view('groups/members', array('entity' => $group)); } else { $area2 .= elgg_view('groups/closedmembership', array('entity' => $group, 'user' => $_SESSION['user'], 'full' => true)); } $body = elgg_view_layout('two_column_left_sidebar', $area1, $area2, $area3); } else {
/** * Dispatches event calendar pages. * * URLs take the form of * Site event calendar: event_calendar/list/<start_date>/<display_mode>/<filter_context>/<region> * Single event: event_calendar/view/<event_guid>/<title> * New event: event_calendar/add * Edit event: event_calendar/edit/<event_guid> * Group event calendar: event_calendar/group/<group_guid>/<start_date>/<display_mode>/<filter_context>/<region> * Add group event: event_calendar/add/<group_guid> * Review requests: event_calendar/review_requests/<event_guid> * Display event subscribers: event_calendar/display_users/<event_guid> * Events for a user's calendar: event_calendar/owner/<username>/<start_date>/<display_mode>/<filter_context>/<region> * * Title is ignored * * @param array $page * @return null */ function event_calendar_page_handler($page) { if (elgg_get_plugin_setting('ical_import_export', 'event_calendar') == "yes") { set_input('ical_calendar_title_menu', true); } elgg_load_library('elgg:event_calendar'); $page_type = $page[0]; switch ($page_type) { case 'list': if (isset($page[1])) { $start_date = $page[1]; set_input('ical_date', $page[1]); if (isset($page[2])) { $display_mode = $page[2]; set_input('ical_interval', $page[2]); if (isset($page[3])) { $filter_mode = $page[3]; switch ($page[3]) { case 'mine': set_input('ical_calendar_filter', 'mine'); break; case 'friends': set_input('ical_calendar_filter', 'friends'); break; default: set_input('ical_calendar_filter', 'all'); break; } if (isset($page[4])) { $region = $page[4]; set_input('ical_region', $page[4]); } else { $region = ''; set_input('ical_region', ''); } } else { $filter_mode = ''; set_input('ical_calendar_filter', 'all'); } } else { $display_mode = ''; set_input('ical_interval', ''); } } else { $start_date = 0; set_input('ical_date', 0); } echo event_calendar_get_page_content_list($page_type, 0, $start_date, $display_mode, $filter_mode, $region); break; case 'view': echo event_calendar_get_page_content_view($page[1]); break; case 'display_users': echo event_calendar_get_page_content_display_users($page[1]); break; case 'manage_users': echo event_calendar_get_page_content_manage_users($page[1]); break; case 'schedule': case 'add': if (isset($page[1])) { group_gatekeeper(); $group_guid = $page[1]; } else { gatekeeper(); $group_guid = 0; } echo event_calendar_get_page_content_edit($page_type, $group_guid, $page[2]); break; case 'edit': gatekeeper(); echo event_calendar_get_page_content_edit($page_type, $page[1]); break; case 'group': group_gatekeeper(); if (isset($page[1])) { $group_guid = $page[1]; set_input('ical_group_guid', $page[1]); if (isset($page[2])) { $start_date = $page[2]; set_input('ical_date', $page[2]); if (isset($page[3])) { $display_mode = $page[3]; set_input('ical_interval', $page[3]); if (isset($page[4])) { $filter_mode = $page[4]; switch ($page[4]) { case 'mine': set_input('ical_calendar_filter', 'mine'); break; case 'friends': set_input('ical_calendar_filter', 'friends'); break; default: set_input('ical_calendar_filter', 'all'); break; } if (isset($page[5])) { $region = $page[5]; set_input('ical_region', $page[5]); } else { $region = ''; set_input('ical_region', ''); } } else { $filter_mode = ''; set_input('ical_calendar_filter', 'all'); } } else { $display_mode = ''; set_input('ical_interval', ''); } } else { $start_date = ''; set_input('ical_date', 0); } } else { $group_guid = 0; set_input('ical_group_guid', 0); } echo event_calendar_get_page_content_list($page_type, $group_guid, $start_date, $display_mode, $filter_mode, $region); break; case 'owner': if (isset($page[1])) { $username = $page[1]; $user = get_user_by_username($username); $user_guid = $user->guid; if (isset($page[2])) { $start_date = $page[2]; if (isset($page[3])) { $display_mode = $page[3]; if (isset($page[4])) { $filter_mode = $page[4]; if (isset($page[5])) { $region = $page[5]; } else { $region = ''; } } else { $filter_mode = ''; } } else { $display_mode = ''; } } else { $start_date = ''; } } else { $group_guid = 0; } echo event_calendar_get_page_content_list($page_type, $user_guid, $start_date, $display_mode, $filter_mode, $region); break; case 'review_requests': gatekeeper(); echo event_calendar_get_page_content_review_requests($page[1]); break; case 'get_fullcalendar_events': echo event_calendar_get_page_content_fullcalendar_events($page[1], $page[2], $page[3], $page[4], $page[5]); break; case 'ical': $resource_vars['action_type'] = $page[1]; echo elgg_view_resource('event_calendar/export', $resource_vars); break; default: return false; } return true; }
<?php $page_owner = elgg_get_page_owner_entity(); $folder_guid = (int) get_input("folder_guid", 0); $draw_page = get_input("draw_page", true); $sort_by = get_input("sort_by"); $direction = get_input("direction"); $limit = file_tools_get_list_length(); $offset = (int) get_input("offset", 0); if (empty($page_owner) || !elgg_instanceof($page_owner, "user") && !elgg_instanceof($page_owner, "group")) { forward(REFERER); } group_gatekeeper(); if (empty($sort_by)) { $sort_value = "e.time_created"; if (elgg_instanceof($page_owner, "group") && !empty($page_owner->file_tools_sort)) { $sort_value = $page_owner->file_tools_sort; } elseif ($site_sort_default = elgg_get_plugin_setting("sort", "file_tools")) { $sort_value = $site_sort_default; } $sort_by = $sort_value; } if (empty($direction)) { $sort_direction_value = "asc"; if (elgg_instanceof($page_owner, "group") && !empty($page_owner->file_tools_sort_direction)) { $sort_direction_value = $page_owner->file_tools_sort_direction; } elseif ($site_sort_direction_default = elgg_get_plugin_setting("sort_direction", "file_tools")) { $sort_direction_value = $site_sort_direction_default; } $direction = $sort_direction_value; }
/** * Handles all question pages * * @param array $segments */ function questions_page_handler($segments) { elgg_push_breadcrumb(elgg_echo('questions'), "questions/all"); $pages = dirname(dirname(__FILE__)) . "/pages/questions"; switch ($segments[0]) { case "all": include "{$pages}/all.php"; break; case "owner": include "{$pages}/owner.php"; break; case "view": set_input('guid', $segments[1]); include "{$pages}/view.php"; break; case "add": gatekeeper(); include "{$pages}/add.php"; break; case "todo": if (isset($segments[1]) && is_numeric($segments[1])) { set_input("group_guid", $segments[1]); } include "{$pages}/todo.php"; break; case "edit": gatekeeper(); set_input('guid', $segments[1]); include "{$pages}/edit.php"; break; case "group": group_gatekeeper(); set_input("group_guid", $segments[1]); $container = get_entity($segments[1]); if (!$container instanceof ElggGroup) { register_error(elgg_echo('questions:workflow:nogroup')); forward(REFERER); } switch ($segments[2]) { case "all": include "{$pages}/owner.php"; break; case "workflow": if (!questions_workflow_enabled()) { register_error(elgg_echo('questions:workflow:notenabled')); forward(REFERER); } questions_expert_gatekeeper(); $workflow = true; include "{$pages}/workflow.php"; break; default: include "{$pages}/owner.php"; } break; case "workflow": if (!questions_workflow_enabled()) { register_error(elgg_echo('questions:workflow:notenabled')); forward(REFERER); } if (!elgg_is_logged_in()) { $_SESSION['last_forward_from'] = current_page_url(); forward('/login'); } questions_expert_gatekeeper(); $workflow = true; switch ($segments[1]) { case "view": set_input('guid', $segments[2]); $question = get_entity($segments[2]); include "{$pages}/view.php"; break; default: include "{$pages}/workflow.php"; } break; case "experts": if (isset($segments[1]) && is_numeric($segments[1])) { elgg_set_page_owner_guid($segments[1]); } include "{$pages}/experts.php"; break; case "admin": if ($segments[1] == "forms" && $segments[2] == "phase_field") { set_input('guid', $segments[3]); include dirname(dirname(__FILE__)) . "/pages/forms/phase_field.php"; } else { return false; } break; default: forward("questions/all"); return false; } return true; }