/** * Stripe related pages * * @param array $page * @param string $handler * @return boolean */ function stripe_page_handler($page, $handler) { gatekeeper(); $username = elgg_extract(0, $page, false); if ($username) { $user = get_user_by_username($username); } if (!elgg_instanceof($user) || !$user->canEdit()) { $user = elgg_get_logged_in_user_entity(); forward("{$handler}/{$user->username}"); } elgg_set_context('settings'); elgg_set_page_owner_guid($user->guid); elgg_push_breadcrumb(elgg_echo('stripe:billing'), 'billing'); $context = elgg_extract(1, $page, 'cards'); $action = elgg_extract(2, $page, 'all'); $view = "stripe/pages/{$context}/{$action}"; if (elgg_view_exists($view)) { $params = array('entity' => $user, 'id' => elgg_extract(3, $page, false), 'context' => $page); $title = elgg_echo("stripe:{$context}:{$action}"); $content = elgg_view($view, $params); $sidebar = elgg_view('stripe/sidebar', $params); $filter = elgg_view("stripe/filters/{$context}/{$action}", $params); } if ($content) { if (elgg_is_xhr()) { echo $content; } else { $layout = elgg_view_layout('content', array('title' => $title, 'content' => $content, 'sidebar' => $sidebar, 'filter' => $filter)); echo elgg_view_page($title, $layout); } return true; } return false; }
/** * Page handler for generic comments manipulation. * * @param array $page * @return bool * @access private */ function _elgg_comments_page_handler($page) { switch ($page[0]) { case 'edit': elgg_gatekeeper(); if (empty($page[1])) { register_error(elgg_echo('generic_comment:notfound')); forward(REFERER); } $comment = get_entity($page[1]); if (!$comment instanceof \ElggComment || !$comment->canEdit()) { register_error(elgg_echo('generic_comment:notfound')); forward(REFERER); } $target = $comment->getContainerEntity(); if (!$target instanceof \ElggEntity) { register_error(elgg_echo('generic_comment:notfound')); forward(REFERER); } $title = elgg_echo('generic_comments:edit'); elgg_push_breadcrumb($target->getDisplayName(), $target->getURL()); elgg_push_breadcrumb($title); $params = array('entity' => $target, 'comment' => $comment, 'is_edit_page' => true); $content = elgg_view_form('comment/save', null, $params); $params = array('content' => $content, 'title' => $title, 'filter' => ''); $body = elgg_view_layout('content', $params); echo elgg_view_page($title, $body); return true; break; default: return false; break; } }
/** * CRUD page handler * * URLs take the form of * List crud objects in group: <crud_type>/owner/<guid> * View crud object: <crud_type>/view/<guid> * Add crud object: <crud_type>/add/<guid> * Edit crud object: <crud_type>/edit/<guid> * * @param array $page Array of url segments for routing * @return bool */ function crud_page_handler($page) { elgg_load_library('elgg:crud'); if (!isset($page[0])) { $page[0] = 'all'; } $page_url = current_page_url(); $site_url = elgg_get_site_url(); $current_url = str_replace($site_url, "", $page_url); $crud_type = current(explode('/', $current_url)); $crud_handler = crud_get_handler($crud_type); $crud_module = $crud_handler->module; elgg_push_breadcrumb(elgg_echo($crud_module), ''); switch ($page[0]) { case 'owner': case 'group': crud_handle_list_page($crud_handler, $page[1]); break; case 'add': crud_handle_edit_page($crud_handler, 'add', $page[1]); break; case 'edit': crud_handle_edit_page($crud_handler, 'edit', $page[1]); break; case 'view': crud_handle_view_page($crud_handler, $page[1]); break; case 'edit_general': crud_handle_edit_page($crud_handler, 'edit_general', $page[1]); break; default: return false; } return true; }
/** * View a single blogbook * * @package Elggtblogs */ function recursive_breadcrumb($tblog) { if ($tblog->parent_guid != '') { recursive_breadcrumb(get_entity($tblog->parent_guid)); } elgg_push_breadcrumb($tblog->title, "/blogbook/view/{$tblog->guid}"); }
function au_group_tag_menu_page_handler($page, $identifier) { //show the page of search results // assumes url of group/guid/tag // if the tag is 'all' then will display a tagcloud switch ($page[0]) { case 'group': $entity = get_entity($page[1]); if (!elgg_instanceof($entity, 'group') || $entity->au_group_tag_menu_enable == 'no') { return false; } elgg_push_breadcrumb($entity->name, $entity->getURL()); //should be OK if this is empty $tag = $page[2]; elgg_push_breadcrumb($tag); if ($tag == "all") { //show a tag cloud for all group tags //arbitrarily set to a max of 640 tags - should be enough for anyone :-) $title = elgg_echo("au_group_tag_menu:tagcloud"); $options = array('container_guid' => $entity->getGUID(), 'type' => 'object', 'threshold' => 0, 'limit' => 640, 'tag_names' => array('tags')); $thetags = elgg_get_tags($options); //make it an alphabetical tag cloud, not with most popular first sort($thetags); //find the highest tag count for scaling the font $max = 0; foreach ($thetags as $key) { if ($key->total > $max) { $max = $key->total; } } $content = " "; //loop through and generate tags so they display nicely //in the group, not as a dumb search page foreach ($thetags as $key) { $url = elgg_get_site_url() . "group_tag_menu/group/" . $entity->getGUID() . "/" . urlencode($key->tag); $taglink = elgg_view('output/url', array('text' => ' ' . $key->tag, 'href' => $url, 'title' => "{$key->tag} ({$key->total})", 'rel' => 'tag')); // get the font size for the tag (taken from elgg's own tagcloud code - not sure I love this) $size = round(log($key->total) / log($max + 0.0001) * 100) + 30; if ($size < 100) { $size = 100; } // generate the link $content .= " <a href='{$url}' style='font-size:{$size}%'>" . $key->tag . "</a> "; } } else { //show the results for the selected tag $title = elgg_echo("au_group_tag_menu:title") . "{$tag}"; $options = array('type' => 'object', 'metadata_name' => 'tags', 'metadata_value' => $tag, 'container_guid' => $entity->guid, 'full_view' => false); $content = elgg_list_entities_from_metadata($options); } //display the page if (!$content) { $content = elgg_echo('au_group_tag_menu:noresults'); } $layout = elgg_view_layout('content', array('title' => elgg_view_title($title), 'content' => $content, 'filter' => false)); echo elgg_view_page($title, $layout); break; } return true; }
/** * Returns HTML to edit a blog post. * * @param int $guid * @param int annotation id optional revision to edit * @return string html */ function blog_get_page_content_edit($guid, $revision = NULL) { $vars = array(); if ($guid) { $blog = get_entity((int) $guid); if (elgg_instanceof($blog, 'object', 'blog') && $blog->canEdit()) { $vars['entity'] = $blog; if ($revision) { $revision = get_annotation((int) $revision); $vars['revision'] = $revision; if (!$revision || !($revision->entity_guid == $guid)) { $content = elgg_echo('blog:error:revision_not_found'); } } elgg_push_breadcrumb($blog->title, $blog->getURL()); elgg_push_breadcrumb(elgg_echo('edit')); $content = elgg_view('blog/forms/edit', $vars); $sidebar = elgg_view('blog/sidebar_revisions', array('entity' => $blog)); //$sidebar .= elgg_view('blog/sidebar_related'); } else { $content = elgg_echo('blog:error:post_not_found'); } } else { elgg_push_breadcrumb(elgg_echo('blog:new')); $content = elgg_view('blog/forms/edit', $vars); //$sidebar = elgg_view('blog/sidebar_related'); } return array('content' => $content, 'sidebar' => $sidebar); }
/** * Listen to the blog page handler, to takeover some pages * * @param string $hook "route" * @param string $type "blog" * @param array $return_value the current page_handler params * @param null $params null * * @return array|bool */ public static function blog($hook, $type, $return_value, $params) { if (empty($return_value) || !is_array($return_value)) { // someone else had a route hook return $return_value; } $page = elgg_extract("segments", $return_value); if (empty($page)) { return $return_value; } $pages_path = elgg_get_plugins_path() . "blog_tools/pages/"; switch ($page[0]) { case "owner": $user = get_user_by_username($page[1]); if (!empty($user)) { $return_value = false; // push all blogs breadcrumb elgg_push_breadcrumb(elgg_echo("blog:blogs"), "blog/all"); set_input("owner_guid", $user->guid); include $pages_path . "owner.php"; } break; case "read": // Elgg 1.7 compatibility // Elgg 1.7 compatibility case "view": if (!elgg_is_logged_in()) { $setting = elgg_get_plugin_setting("advanced_gatekeeper", "blog_tools"); if ($setting != "no") { if (isset($page[1]) && !get_entity($page[1])) { elgg_gatekeeper(); } } } set_input("guid", $page[1]); // to be used in the blog_tools/full/related view break; case "add": case "edit": $return_value = false; // push all blogs breadcrumb elgg_push_breadcrumb(elgg_echo("blog:blogs"), "blog/all"); set_input("page_type", $page[0]); if (isset($page[1])) { set_input("guid", $page[1]); } if (isset($page[2])) { set_input("revision", $page[2]); } include $pages_path . "edit.php"; break; case "featured": $return_value = false; include $pages_path . "featured.php"; break; } return $return_value; }
/** * 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>/owner * 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'); elgg_push_context('bookmarks'); // 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; }
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; }
public function testCrumbLinksAreNormalized() { $this->markTestIncomplete('Needs DB'); // TODO make this unnecessary elgg_set_view_location('output/url', __DIR__ . '/../../../views/'); elgg_set_view_location('navigation/breadcrumbs', __DIR__ . '/../../../views/'); elgg_push_breadcrumb('test', 'link'); $html = elgg_view('navigation/breadcrumbs'); $this->assertNotFalse(strpos($html, '"http://localhost/link"')); }
function etherpad_page_handler($page, $handler) { // elgg_load_library('elgg:pages'); if ($handler == 'pages') { // add the jquery treeview files for navigation elgg_load_js('jquery-treeview'); elgg_load_css('jquery-treeview'); } if (!isset($page[0])) { $page[0] = 'all'; } elgg_push_breadcrumb(elgg_echo($handler), "{$handler}/all"); $base_dir = elgg_get_plugins_path() . "etherpad/pages/{$handler}"; $page_type = $page[0]; switch ($page_type) { case 'owner': include "{$base_dir}/owner.php"; break; case 'friends': include "{$base_dir}/friends.php"; break; case 'view': set_input('guid', $page[1]); include "{$base_dir}/view.php"; break; case 'add': set_input('guid', $page[1]); include "{$base_dir}/new.php"; break; case 'edit': set_input('guid', $page[1]); include "{$base_dir}/edit.php"; break; case 'group': include "{$base_dir}/owner.php"; break; case 'history': set_input('guid', $page[1]); include "{$base_dir}/history.php"; break; case 'revision': set_input('id', $page[1]); include "{$base_dir}/revision.php"; break; case 'all': include "{$base_dir}/world.php"; break; case "cross": include "{$base_dir}/cross.php"; break; default: return false; } return true; }
function get_create_forms($page) { $parent_guid = 0; switch ($page[0]) { case "blog": echo "<h2>Add a Blog</h2>"; elgg_load_library('elgg:blog'); $body_vars = blog_prepare_form_vars(); echo elgg_view_form('blog/save', array(), array_merge($body_vars, $vars)); exit; case "event": echo "<h2>Add an Event</h2>"; elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); echo elgg_view("event_manager/forms/event/edit"); exit; case "group": echo "<h2>" . elgg_echo('groups:add') . "</h2>"; elgg_load_library('elgg:groups'); elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); 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'); } echo $content; exit; case "project": echo "<h2>" . elgg_echo('projects:add') . "</h2>"; $vars = projects_prepare_form_vars(null, $parent_guid); $content = elgg_view_form('projects/edit', array('enctype' => 'multipart/form-data'), $vars); echo $content; exit; case "page": elgg_load_library('elgg:pages'); echo "<h2>" . elgg_echo('pages:add') . "</h2>"; $vars = pages_prepare_form_vars(null, $parent_guid); $content = elgg_view_form('pages/edit', array(), $vars); echo $content; exit; case "answer": echo "<h2>" . elgg_echo('answers:add') . "</h2>"; elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); echo elgg_view("answers/forms/question", array('container_guid' => elgg_get_page_owner_guid())); exit; case "task": elgg_load_library('elgg:tasks'); echo "<h2>" . elgg_echo('tasks:add') . "</h2>"; $vars = tasks_prepare_form_vars(null, $parent_guid); $content = elgg_view_form('tasks/edit', array(), $vars); echo $content; exit; } }
public function pushBreadcrumbs(ElggEntity $entity) { $breadcrumbs = $this->getBreadcrumbs($entity); foreach ($breadcrumbs as $breadcrumb) { $text = elgg_extract('text', $breadcrumb, ''); $href = elgg_extract('href', $breadcrumb); if ($text) { elgg_push_breadcrumb($text, $href); } } }
public function testTrailingNonLinkIsRemoved() { $this->markTestIncomplete('Needs DB'); // TODO make this unnecessary elgg_set_view_location('output/url', __DIR__ . '/../../../views/'); elgg_set_view_location('navigation/breadcrumbs', __DIR__ . '/../../../views/'); elgg_push_breadcrumb('Foo', 'foo'); elgg_push_breadcrumb('Bar'); $html = elgg_view('navigation/breadcrumbs'); $this->assertFalse(strpos($html, 'Bar')); }
function avatar_wall_page_handler($page) { elgg_push_breadcrumb(elgg_echo('avatar_wall:title')); $title = elgg_echo('avatar_wall:title'); $area = elgg_view('avatar_wall/wall'); // Format page $body = elgg_view('page/layouts/one_column', array('content' => $area, 'title' => $title)); // Draw it echo elgg_view_page(elgg_echo('avatar_wall:title'), $body); return true; }
/** * Dispatcher for webinar. * URLs take the form of * All webinar: webinar/all * View webinar: webinar/view/<guid> * Add webinar: webinar/new/<guid_container> (container: user, group) * Edit webinar: webinar/edit/<guid> * User's webinar: webinar/owner/<username>/ * User friends's webinar: webinar/friends/<username>/ * Group webinar: webinar/group/<guid>/all * Relationship to webinar : webinar/<attendee | registered>/<guid> * * Title is ignored * * @param array $page * @return bool */ function webinar_page_handler($page) { elgg_load_library('elgg:webinar'); // push all webinars breadcrumb elgg_push_breadcrumb(elgg_echo('webinar:webinars'), "webinar/all"); if (!isset($page[0])) { $page[0] = 'all'; } $page_type = $page[0]; switch ($page_type) { case 'all': case "owner": case 'friends': case "group": $params = webinar_get_page_content_list($page); break; case "view": if (isset($page[1]) && is_numeric($page[1])) { $params = webinar_get_page_content_view($page[1]); } else { return false; } break; case "add": case "edit": gatekeeper(); if (isset($page[1]) && is_numeric($page[1])) { $params = webinar_get_page_content_edit($page_type, $page[1]); } else { return false; } break; case "attendee": case "registered": if (isset($page[1]) && is_numeric($page[1])) { $params = webinar_get_page_content_relationships($page_type, $page[1]); } else { return false; } break; default: return false; break; } if (isset($params['sidebar'])) { $params['sidebar'] .= elgg_view('webinar/sidebar', array('page' => $page_type)); } else { $params['sidebar'] = elgg_view('webinar/sidebar', array('page' => $page_type)); } $body = elgg_view_layout('content', $params); echo elgg_view_page($params['title'], $body); return true; }
/** * Dispatcher for projects. * URLs take the form of * All projects: projects/all * User's projects: projects/owner/<username> * Friends' projects: projects/friends/<username> * View project: projects/view/<guid>/<title> * New project: projects/add/<guid> (container: user, group, parent) * Edit project: projects/edit/<guid> * History of project: projects/history/<guid> * Revision of project: projects/revision/<id> * Group projects: projects/group/<guid>/all * * Title is ignored * * @param array $project * @return bool */ function changeReqs_page_handler($changeReqs) { if (!isset($changeReqs[0])) { $changeReqs[0] = 'all'; } elgg_push_breadcrumb(elgg_echo('changeReqss'), 'changeReqs/all'); $base_dir = elgg_get_plugins_path() . 'changeRequests/pages/changeReqs'; $changeReqs_type = $changeReqs[0]; switch ($changeReqs_type) { case 'request': set_input('guid', $changeReqs[1]); include "{$base_dir}/request.php"; break; case 'search': include "{$base_dir}/search.php"; break; case 'owner': include "{$base_dir}/owner.php"; break; case 'friends': include "{$base_dir}/friends.php"; break; case 'view': set_input('guid', $changeReqs[1]); include "{$base_dir}/view.php"; break; case 'add': set_input('guid', $changeReqs[1]); include "{$base_dir}/new.php"; break; case 'edit': set_input('guid', $changeReqs[1]); include "{$base_dir}/edit.php"; break; case 'group': include "{$base_dir}/owner.php"; break; case 'history': set_input('guid', $changeReqs[1]); include "{$base_dir}/history.php"; break; case 'revision': set_input('id', $changeReqs[1]); include "{$base_dir}/revision.php"; break; case 'all': include "{$base_dir}/world.php"; break; default: return false; } return true; }
/** * Prepare the add/edit form variables * * @param ElggObject $video A video object. * @return array */ function videos_get_page_content_featured($guid = NULL) { $return = array(); $options = array('type' => 'object', 'subtype' => 'videos', 'full_view' => FALSE, 'limit' => 10, 'metadata_name_value_pairs' => array(array("name" => "featured", "value" => true))); $list = elgg_list_entities_from_metadata($options); $return['filter_context'] = 'Featured'; $return['content'] = $list; $return['title'] = elgg_echo('videos:title:featured'); elgg_push_breadcrumb($crumbs_title, "Featured"); elgg_register_title_button(); return $return; }
/** * poll page handler; allows the use of fancy URLs * * @param array $page From the page_handler function * @return true|false Depending on success */ function poll_page_handler($page) { elgg_load_library('elgg:poll'); elgg_push_breadcrumb(elgg_echo('item:object:poll'), "poll/all"); $page_type = $page[0]; switch ($page_type) { case "view": echo poll_get_page_view($page[1]); break; case "all": echo poll_get_page_list($page_type); break; case "add": case "edit": $container = null; if (isset($page[1])) { $container = $page[1]; } echo poll_get_page_edit($page_type, $container); break; case "friends": case "owner": $username = $page[1]; $user = get_user_by_username($username); $user_guid = $user->guid; echo poll_get_page_list($page_type, $user_guid); break; case "group": echo poll_get_page_list($page_type, $page[1]); break; default: $user = get_user_by_username($page_type); if ($user instanceof ElggUser) { if (isset($page[1])) { switch ($page[1]) { case "read": forward("/poll/view/{$page[2]}"); break; case "friends": forward("/poll/friends/{$user->username}"); break; } // If the URL is just 'poll/username' forward to polls page of this user } else { forward("/poll/owner/{$user->username}"); break; } } return false; break; } return true; }
/** * Dispatches blog pages. * URLs take the form of * All blogs: blog/all * User's blogs: blog/owner/<username> * Friends' blog: blog/friends/<username> * User's archives: blog/archives/<username>/<time_start>/<time_stop> * Blog post: blog/view/<guid>/<title> * New post: blog/add/<guid> * Edit post: blog/edit/<guid>/<revision> * Preview post: blog/preview/<guid> * Group blog: blog/group/<guid>/all * * Title is ignored * * @todo no archives for all blogs or friends * * @param array $page * @return bool */ function blog_page_handler($page) { elgg_load_library('elgg:blog'); // push all blogs breadcrumb elgg_push_breadcrumb(elgg_echo('blog:blogs'), "blog/all"); if (!isset($page[0])) { $page[0] = 'all'; } $page_type = $page[0]; switch ($page_type) { case 'owner': set_input('username', $page[1]); echo elgg_view_resource('blog/owner'); break; case 'friends': set_input('username', $page[1]); echo elgg_view_resource('blog/friends'); break; case 'archive': set_input('username', $page[1]); set_input('lower', $page[2]); set_input('upper', $page[3]); echo elgg_view_resource('blog/archive'); break; case 'view': set_input('guid', $page[1]); echo elgg_view_resource('blog/view'); break; case 'add': set_input('guid', $page[1]); echo elgg_view_resource('blog/add'); break; case 'edit': set_input('guid', $page[1]); set_input('revision', $page[2]); echo elgg_view_resource('blog/edit'); break; case 'group': set_input('group_guid', $page[1]); set_input('page_type', $page[2]); set_input('lower', $page[3]); set_input('upper', $page[4]); echo elgg_view_resource('blog/group'); break; case 'all': echo elgg_view_resource('blog/all'); break; default: return false; } 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; }
/** * Dispatches blog pages. * URLs take the form of * All blogs: blog/all * User's blogs: blog/owner/<username> * Friends' blog: blog/friends/<username> * User's archives: blog/archives/<username>/<time_start>/<time_stop> * Blog post: blog/view/<guid>/<title> * New post: blog/add/<guid> * Edit post: blog/edit/<guid>/<revision> * Preview post: blog/preview/<guid> * Group blog: blog/group/<guid>/all * * Title is ignored * * @todo no archives for all blogs or friends * * @param array $page * @return bool */ function blog_page_handler($page) { elgg_load_library('elgg:blog'); // push all blogs breadcrumb elgg_push_breadcrumb(elgg_echo('blog:blogs'), 'blog/all'); $page_type = elgg_extract(0, $page, 'all'); $resource_vars = ['page_type' => $page_type]; switch ($page_type) { case 'owner': $resource_vars['username'] = elgg_extract(1, $page); echo elgg_view_resource('blog/owner', $resource_vars); break; case 'friends': $resource_vars['username'] = elgg_extract(1, $page); echo elgg_view_resource('blog/friends', $resource_vars); break; case 'archive': $resource_vars['username'] = elgg_extract(1, $page); $resource_vars['lower'] = elgg_extract(2, $page); $resource_vars['upper'] = elgg_extract(3, $page); echo elgg_view_resource('blog/archive', $resource_vars); break; case 'view': $resource_vars['guid'] = elgg_extract(1, $page); echo elgg_view_resource('blog/view', $resource_vars); break; case 'add': $resource_vars['guid'] = elgg_extract(1, $page); echo elgg_view_resource('blog/add', $resource_vars); break; case 'edit': $resource_vars['guid'] = elgg_extract(1, $page); $resource_vars['revision'] = elgg_extract(2, $page); echo elgg_view_resource('blog/edit', $resource_vars); break; case 'group': $resource_vars['group_guid'] = elgg_extract(1, $page); $resource_vars['subpage'] = elgg_extract(2, $page); $resource_vars['lower'] = elgg_extract(3, $page); $resource_vars['upper'] = elgg_extract(4, $page); echo elgg_view_resource('blog/group', $resource_vars); break; case 'all': echo elgg_view_resource('blog/all', $resource_vars); break; default: return false; } return true; }
function sched_conf_get_page_content_edit($page_type, $guid) { $vars = array(); $vars['id'] = 'sched-conf-edit'; $vars['name'] = 'sched_conf_edit'; // just in case a feature adds an image upload $vars['enctype'] = 'multipart/form-data'; $body_vars = array(); if ($page_type == 'edit') { $title = elgg_echo('sched_conf:edit_conf_title'); $conf = get_entity((int) $guid); if (elgg_instanceof($conf, 'object', 'conference') && $conf->canEdit()) { $body_vars['conference'] = $conf; $body_vars['form_data'] = sched_conf_prepare_edit_form_vars($conf); $conf_container = get_entity($conf->container_guid); if (elgg_instanceof($conf_container, 'group')) { elgg_push_breadcrumb(elgg_echo('event_calendar:group_breadcrumb'), 'event_calendar/group/' . $conf->container_guid); } else { elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'), 'event_calendar/list'); } elgg_push_breadcrumb(elgg_echo('sched_conf:edit_conf_title')); $content = elgg_view_form('sched_conf/edit', $vars, $body_vars); } else { $content = elgg_echo('sched_conf:error_edit'); } } else { $title = elgg_echo('sched_conf:add_conf_title'); if ($guid) { // add to group $group = get_entity($guid); if (elgg_instanceof($group, 'group')) { $body_vars['group_guid'] = $guid; elgg_push_breadcrumb(elgg_echo('event_calendar:group_breadcrumb'), 'event_calendar/group/' . $guid); elgg_push_breadcrumb(elgg_echo('sched_conf:add_conf_title')); $body_vars['form_data'] = event_calendar_prepare_edit_form_vars(); $content = elgg_view_form('sched_conf/edit', $vars, $body_vars); } else { $content = elgg_echo('sched_conf:no_group'); } } else { elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'), 'event_calendar/list'); elgg_push_breadcrumb(elgg_echo('sched_conf:add_conf_title')); $body_vars['form_data'] = sched_conf_prepare_edit_form_vars(); $content = elgg_view_form('sched_conf/edit', $vars, $body_vars); } } $params = array('title' => $title, 'content' => $content, 'filter' => ''); $body = elgg_view_layout("content", $params); return elgg_view_page($title, $body); }
/** * 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; }
/** * Handle all /answers URLs * * @param array $page URL segments * * @return bool */ public static function answers($page) { elgg_push_breadcrumb(elgg_echo('questions'), 'questions/all'); $params = []; switch (elgg_extract(0, $page)) { case 'edit': $params['guid'] = (int) elgg_extract(1, $page); echo elgg_view_resource('answers/edit', $params); break; default: forward('questions/all'); return false; } return true; }
/** * Recurses the page tree and adds the breadcrumbs for all ancestors * * @param ElggObject $page Page entity */ function pages_prepare_parent_breadcrumbs($page) { if ($page && $page->parent_guid) { $parents = array(); $parent = get_entity($page->parent_guid); while ($parent) { array_push($parents, $parent); $parent = get_entity($parent->parent_guid); } while ($parents) { $parent = array_pop($parents); elgg_push_breadcrumb($parent->title, $parent->getURL()); } } }
/** * Dispatche chat pages. * * @param array $page * @return bool */ function chat_page_handler($page) { elgg_load_library('chat'); if (!isset($page[0])) { elgg_push_breadcrumb(elgg_echo('chat')); $page[0] = 'all'; } else { elgg_push_breadcrumb(elgg_echo('chat'), 'chat/all'); } switch ($page[0]) { case 'messages': include __DIR__ . '/messages.php'; return true; case 'notifier': include __DIR__ . '/notifier.php'; return true; case 'owner': $user = get_user_by_username($page[1]); $params = chat_all($user->guid); break; case 'friends': $user = get_user_by_username($page[1]); $params = chat_friends($user->guid); break; case 'add': gatekeeper(); $params = chat_edit(); break; case 'edit': gatekeeper(); $params = chat_edit($page[1]); break; case 'view': $params = chat_view($page[1]); break; case 'members': gatekeeper(); $params = chat_add_members($page[1]); break; case 'all': default: $params = chat_all(); break; } $body = elgg_view_layout('content', $params); echo elgg_view_page('test', $body); return true; }
/** * Handles all answer pages * * @param array $segments * * @return bool */ function answers_page_handler($segments) { elgg_push_breadcrumb(elgg_echo('questions'), 'questions/all'); $pages = dirname(dirname(__FILE__)) . '/pages/answers'; switch ($segments[0]) { case 'edit': elgg_gatekeeper(); set_input('guid', $segments[1]); include "{$pages}/edit.php"; break; default: forward('questions/all'); return false; } return true; }
/** * Dispatcher for pages. * URLs take the form of * All pages: pages/all * User's pages: pages/owner/<username> * Friends' pages: pages/friends/<username> * View page: pages/view/<guid>/<title> * New page: pages/add/<guid> (container: user, group, parent) * Edit page: pages/edit/<guid> * History of page: pages/history/<guid> * Revision of page: pages/revision/<id> * Group pages: pages/group/<guid>/all * * Title is ignored * * @param array $page * @return bool */ function pages_page_handler($page) { elgg_load_library('elgg:pages'); if (!isset($page[0])) { $page[0] = 'all'; } elgg_push_breadcrumb(elgg_echo('pages'), 'pages/all'); $base_dir = elgg_get_plugins_path() . 'pages/pages/pages'; $page_type = $page[0]; switch ($page_type) { case 'owner': include "{$base_dir}/owner.php"; break; case 'friends': include "{$base_dir}/friends.php"; break; case 'view': set_input('guid', $page[1]); include "{$base_dir}/view.php"; break; case 'add': set_input('guid', $page[1]); include "{$base_dir}/new.php"; break; case 'edit': set_input('guid', $page[1]); include "{$base_dir}/edit.php"; break; case 'group': include "{$base_dir}/owner.php"; break; case 'history': set_input('guid', $page[1]); include "{$base_dir}/history.php"; break; case 'revision': set_input('id', $page[1]); include "{$base_dir}/revision.php"; break; case 'all': include "{$base_dir}/world.php"; break; default: return false; } return true; }
/** * /poll page handler * * @param array $page url segments * * @return bool */ public static function pollHandler($page) { $pages_root = elgg_get_plugins_path() . 'poll/pages/'; $include_file = false; switch ($page[0]) { case 'add': $include_file = "{$pages_root}poll/add.php"; break; case 'view': if (isset($page[1]) && is_numeric($page[1])) { set_input('guid', $page[1]); } $include_file = "{$pages_root}poll/view.php"; break; case 'all': $include_file = "{$pages_root}poll/all.php"; break; case 'owner': $include_file = "{$pages_root}poll/owner.php"; break; case 'friends': $include_file = "{$pages_root}poll/friends.php"; break; case 'group': if (isset($page[1]) && is_numeric($page[1])) { elgg_set_page_owner_guid($page[1]); } $include_file = "{$pages_root}poll/owner.php"; break; case 'edit': if (isset($page[1]) && is_numeric($page[1])) { set_input('guid', $page[1]); } $include_file = "{$pages_root}poll/edit.php"; break; default: forward('poll/all'); break; } if (!empty($include_file)) { elgg_push_breadcrumb(elgg_echo('poll:menu:site'), 'poll/all'); include $include_file; return true; } return false; }