function customstyle_page_handler($page) { gatekeeper(); elgg_set_context('customstyle'); elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); $title = elgg_echo('customstyle'); $base_dir = elgg_get_plugins_path() . 'customstyle/pages/customstyle'; switch ($page[0]) { case 'colors': $body = elgg_view('customstyle/colors'); break; case 'background': $body = elgg_view('customstyle/background'); break; case 'personalize': $body = elgg_view('customstyle/default'); break; default: $body = elgg_view('customstyle/default'); break; } $params = array('content' => $body, 'title' => $title); $body = elgg_view_layout('one_sidebar', $params); echo elgg_view_page($title, $body); return true; }
/** * hook called on route, all * check if $returnvalue['handler'] to see if we need to replace it * if the handler is an original handler, we want to foward it to the new url * * @param type $hook * @param type $type * @param type $returnvalue * @param type $params * @return array */ function router($hook, $type, $returnvalue, $params) { if (elgg_get_config('pagehandler_hijack')) { return $returnvalue; } $handlers = get_replacement_handlers(); if (in_array($returnvalue['handler'], array_keys($handlers))) { // we have been given an old handler -> we should forward to the replacement // probably from an old link or something $currenturl = current_page_url(); //get everything after the pagehandler $afterhandler = str_replace(elgg_get_site_url() . $returnvalue['handler'], "", $currenturl); $newurl = elgg_get_site_url() . $handlers[$returnvalue['handler']] . $afterhandler; // forward to the new url forward($newurl); } if (in_array($returnvalue['handler'], $handlers)) { // we need to do something about it // get the original handler $original = array_search($returnvalue['handler'], $handlers); if (!empty($original)) { // reset the context for non-hijack aware code elgg_set_context($original); // let the system load content for the original handler $returnvalue['handler'] = $original; $returnvalue['identifier'] = $original; // set a flag so we don't infinite loop ourselves in route hooks elgg_set_config('pagehandler_hijack', true); return elgg_trigger_plugin_hook('route', $original, null, $returnvalue); } } }
/** * 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; }
/** * Route page requests * * @param array $page Array of url parameters * @return bool */ function notifications_page_handler($page) { elgg_gatekeeper(); // Set the context to settings elgg_set_context('settings'); $current_user = elgg_get_logged_in_user_entity(); // default to personal notifications if (!isset($page[0])) { $page[0] = 'personal'; } if (!isset($page[1])) { forward("notifications/{$page[0]}/{$current_user->username}"); } $vars['username'] = $page[1]; // note: $user passed in switch ($page[0]) { case 'group': echo elgg_view_resource('notifications/groups', $vars); break; case 'personal': echo elgg_view_resource('notifications/index', $vars); break; default: return false; } return true; }
function jpatchwork_page_handler($page) { if (!isset($page[0])) { $page[0] = 'sample'; } elgg_set_context('jpatchwork'); $page_type = $page[0]; switch ($page_type) { case 'sample': $area2 = elgg_view_title(elgg_echo('jpatchwork:sample_title')); // Add the form to this section elgg_set_viewtype('xml'); $area2 .= elgg_view('jpatchwork/sample'); elgg_set_viewtype('default'); break; case 'frozenbubble': $area2 = elgg_view_title(elgg_echo('jpatchwork:frozenbubble_title')); // Add the form to this section elgg_set_viewtype('xml'); $area2 .= elgg_view('jpatchwork/frozenbubble'); elgg_set_viewtype('default'); break; default: return false; } // Format page $body = elgg_view('page/layouts/one_sidebar', array('content' => $area2)); // Draw it echo elgg_view_page(elgg_echo('jpatchwork:title'), $body); return true; }
/** * Turns the current page over to the page handler, allowing registered handlers to take over. * * If a page handler returns FALSE, the request is handed over to the default_page_handler. * * @param string $handler The name of the handler type (eg 'blog') * @param array $page The parameters to the page, as an array (exploded by '/' slashes) * * @return true|false Depending on whether a registered page handler was found */ function page_handler($handler, $page) { global $CONFIG; elgg_set_context($handler); $page = explode('/', $page); // remove empty array element when page url ends in a / (see #1480) if ($page[count($page) - 1] === '') { array_pop($page); } if (!isset($CONFIG->pagehandler) || empty($handler)) { $result = false; } else { if (isset($CONFIG->pagehandler[$handler]) && is_callable($CONFIG->pagehandler[$handler])) { $function = $CONFIG->pagehandler[$handler]; $result = call_user_func($function, $page, $handler); if ($result !== false) { $result = true; } } else { $result = false; } } if (!$result) { $result = default_page_handler($page, $handler); } if ($result !== false) { $result = true; } return $result; }
/** * Routes the request to a registered page handler * * This function sets the context based on the handler name (first segment of the * URL). It also triggers a plugin hook 'route', $handler so that plugins can * modify the routing or handle a request. * * @param string $handler The name of the handler type (eg 'blog') * @param array $page The parameters to the page, as an array (exploded by '/' slashes) * * @return bool * @access private */ function page_handler($handler, $page) { global $CONFIG; elgg_set_context($handler); $page = explode('/', $page); // remove empty array element when page url ends in a / (see #1480) if ($page[count($page) - 1] === '') { array_pop($page); } // return false to stop processing the request (because you handled it) // return a new $params array if you want to route the request differently $params = array('handler' => $handler, 'segments' => $page); $params = elgg_trigger_plugin_hook('route', $handler, NULL, $params); if ($params === false) { return true; } $handler = $params['handler']; $page = $params['segments']; $result = false; if (isset($CONFIG->pagehandler) && !empty($handler) && isset($CONFIG->pagehandler[$handler])) { $function = $CONFIG->pagehandler[$handler]; $result = call_user_func($function, $page, $handler); } return $result || headers_sent(); }
public function __construct($page) { admin_gatekeeper(); global $CONFIG; $cshop = new stdClass(); $this->controller = GLOBAL_IZAP_CURRENT_CONTROLLER; $this->action = 'action' . ucfirst($page[0]); $this->_page = $page; $this->url_vars = $this->_page; $this->page_layout = $this->page_shell = 'admin'; $cshop->view = $this->_view = 'admin/' . implode('/', $page); $this->page_elements['title'] = elgg_echo("admin:{$page[0]}"); if (count($page) > 1) { $this->page_elements['title'] .= ' : ' . elgg_echo('admin:' . implode(':', $page)); } if (method_exists($this, $this->action)) { elgg_admin_add_plugin_settings_menu(); elgg_set_context('admin'); elgg_unregister_css('elgg'); $url = elgg_get_simplecache_url('js', 'admin'); elgg_register_js('elgg.admin', $url); elgg_load_js('elgg.admin'); elgg_register_js('jquery.jeditable', 'vendors/jquery/jquery.jeditable.mini.js'); elgg_load_js('jquery.jeditable'); } $CONFIG->cshop = $cshop; }
/** * Get albums for display on front page * * @param int number of albums * @param array (optional) array of container_guids * @param string (optional) context of view to display * @return string of html for display */ function tp_get_latest_albums($num_albums, array $container_guids = NULL, $context = 'front') { $prev_context = elgg_get_context(); elgg_set_context($context); $image_html = elgg_list_entities(array('type' => 'object', 'subtype' => 'album', 'container_guids' => $container_guids, 'limit' => $num_albums, 'full_view' => false, 'pagination' => false)); elgg_set_context($prev_context); return $image_html; }
/** * Page handler function * * @param array $page Page URL segments */ function invitefriends_page_handler($page) { gatekeeper(); elgg_set_context('friends'); set_page_owner(elgg_get_logged_in_user_guid()); $title = elgg_echo('friends:invite'); $body = elgg_view('invitefriends/form'); $params = array('content' => $body, 'title' => $title); $body = elgg_view_layout('one_sidebar', $params); echo elgg_view_page($title, $body); }
function importer_page_handler($page) { gatekeeper(); elgg_set_context('friends'); elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); $title = elgg_echo('import:contacts'); $body = elgg_view('importer/form'); $params = array('content' => $body, 'title' => $title); $body = elgg_view_layout('one_sidebar', $params); echo elgg_view_page($title, $body); return true; }
/** * GV isegoria page handler. */ function isegoria_page_handler() { // Ensure that only logged-in users can see this page gatekeeper(); // Set context and title elgg_set_context('dashboard'); elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); $title = elgg_echo('dashboard'); $params = array('num_columns' => 3, 'show_access' => false); $widgets = elgg_view_layout('widgets', $params); $body = elgg_view_layout('one_column', array('content' => $widgets)); echo elgg_view_page($title, $body); return true; }
function custom_friends_page_handler($page_elements, $handler) { elgg_set_context('friends'); if (isset($page_elements[0]) && ($user = get_user_by_username($page_elements[0]))) { elgg_set_page_owner_guid($user->getGUID()); } if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) { collections_submenu_items(); } if (!isset($handler[0])) { $handler[0] = 'friends'; } require_once dirname(__FILE__) . "/pages/friends/index.php"; return true; }
/** * Page handler function * * @param array $page Page URL segments * @return bool */ function invitefriends_page_handler($page) { elgg_gatekeeper(); if (!elgg_get_config('allow_registration')) { return false; } elgg_set_context('friends'); elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); $title = elgg_echo('friends:invite'); $body = elgg_view('invitefriends/form'); $params = array('content' => $body, 'title' => $title); $body = elgg_view_layout('one_sidebar', $params); echo elgg_view_page($title, $body); return true; }
function importUsersPageHandler($page) { admin_gatekeeper(); elgg_admin_add_plugin_settings_menu(); elgg_set_context('admin'); elgg_unregister_css('elgg'); elgg_load_js('elgg.admin'); elgg_load_js('jquery.jeditable'); $vars = array('page' => $page); $view = 'import/' . implode('/', $page); $title = "Import Users"; $content = elgg_view($view); $body = elgg_view_layout('admin', array('content' => $content, 'title' => $title)); echo elgg_view_page($title, $body, 'admin'); return true; }
public function testSetReplacesTheMostRecentlyPushedContext() { $context = new Context(); $context->push('foo'); $context->set('bar'); $this->assertNotTrue($context->contains('foo')); $this->assertEquals('bar', $context->pop()); $this->assertNotEquals('foo', $context->pop()); // TODO: remove once global state is fully deprecated (2.0) _elgg_services()->setValue('context', new Context()); elgg_push_context('foo'); elgg_set_context('bar'); $this->assertNotTrue(elgg_in_context('foo')); $this->assertEquals('bar', elgg_pop_context()); $this->assertNotEquals('foo', elgg_pop_context()); }
/** * Dispatcher for group alias. * URLs take the form of * All groups: g/ * Group profile: g/<alias> * Group Tools: g/<alias>/<handler> => <handler>/group/<guid> * * @param array $page * @return bool */ function group_alias_page_handler($page) { elgg_set_context('groups'); if (!isset($page[0])) { groups_page_handler(array('all'), 'groups'); return true; } $group = get_group_from_group_alias($page[0]); if ($group && !isset($page[1])) { groups_page_handler(array('profile', $group->guid)); } elseif ($group && isset($page[1])) { forward("{$page['1']}/group/{$group->guid}"); } else { groups_page_handler($page); } return true; }
/** * Page handler for friends collections * * @param array $page_elements Page elements * * @return bool * @access private */ function _elgg_collections_page_handler($page_elements) { elgg_set_context('friends'); if (isset($page_elements[0])) { switch ($page_elements[0]) { case 'add': elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); echo elgg_view_resource("friends/collections/add"); return true; case 'owner': $user = get_user_by_username($page_elements[1]); if ($user) { elgg_set_page_owner_guid($user->getGUID()); echo elgg_view_resource("friends/collections/view"); return true; } break; case 'pickercallback': echo elgg_view_resource('friends/collections/pickercallback'); return true; } } return false; }
/** * Services handler - turns request over to the registered handler * If no handler is found, this returns a 404 error * * @param string $handler Handler name * @param array $request Request string * * @return void * @access private */ function service_handler($handler, $request) { global $CONFIG; elgg_set_context('api'); $request = explode('/', $request); // after the handler, the first identifier is response format // ex) http://example.org/services/api/rest/json/?method=test $response_format = array_shift($request); // Which view - xml, json, ... if ($response_format && elgg_is_valid_view_type($response_format)) { elgg_set_viewtype($response_format); } else { // default to json elgg_set_viewtype("json"); } if (!isset($CONFIG->servicehandler) || empty($handler)) { // no handlers set or bad url header("HTTP/1.0 404 Not Found"); exit; } else { if (isset($CONFIG->servicehandler[$handler]) && is_callable($CONFIG->servicehandler[$handler])) { $function = $CONFIG->servicehandler[$handler]; call_user_func($function, $request, $handler); } else { // no handler for this web service header("HTTP/1.0 404 Not Found"); exit; } } }
/** * Gestor de páginas * * @param array $page Array of page routing elements * @return bool */ function trip_companions_page_handler($page) { //system_message("page handler " . elgg_extract(0, $page)); // only logged in users can do things elgg_gatekeeper(); if (elgg_extract(0, $page) === 'add' && elgg_is_xhr()) { echo elgg_view('resources/evaluationcontent/add_form'); return true; } if (elgg_extract(0, $page) === 'import') { echo elgg_view('resources/trip_companions/add_form'); return true; } $friends = $groups = 0; switch ($page[0]) { case 'groups': $groups = 10; break; default: $friends = $groups = 10; break; } $page_owner = elgg_get_logged_in_user_entity(); elgg_set_page_owner_guid($page_owner->guid); elgg_set_context("trip_companions"); $content = elgg_view('resources/trip_companions/list', array('owner' => $page_owner, 'friends' => $friends, 'groups' => $groups)); if ($content) { echo $content; return true; } return false; }
/** * Services handler - turns request over to the registered handler * If no handler is found, this returns a 404 error * * @param string $handler Handler name * @param array $request Request string * * @return void * @access private */ function service_handler($handler, $request) { global $CONFIG; elgg_set_context('api'); $request = explode('/', $request); // after the handler, the first identifier is response format // ex) http://example.org/services/api/rest/json/?method=test $response_format = array_shift($request); if (!$response_format) { $response_format = 'json'; } if (!ctype_alpha($response_format)) { header("HTTP/1.0 400 Bad Request"); header("Content-type: text/plain"); echo "Invalid format."; exit; } elgg_set_viewtype($response_format); if (!isset($CONFIG->servicehandler) || empty($handler)) { // no handlers set or bad url header("HTTP/1.0 404 Not Found"); exit; } else { if (isset($CONFIG->servicehandler[$handler]) && is_callable($CONFIG->servicehandler[$handler])) { $function = $CONFIG->servicehandler[$handler]; call_user_func($function, $request, $handler); } else { // no handler for this web service header("HTTP/1.0 404 Not Found"); exit; } } }
<?php /** * Elgg add a collection of friends * * @package Elgg.Core * @subpackage Social.Collections */ // You need to be logged in for this one elgg_gatekeeper(); //get which collection we are using $collection = (int) get_input("collection"); //add page menu items back for edit page //friends $params = array('name' => 'friends', 'text' => elgg_echo('friends'), 'href' => 'friends/' . elgg_get_logged_in_user_entity()->username, 'contexts' => array('friends')); elgg_register_menu_item('page', $params); //friend circles elgg_register_menu_item('page', array('name' => 'friends:view:collections', 'text' => elgg_echo('friends:collections'), 'href' => "collections/owner/" . elgg_get_logged_in_user_entity()->username, 'contexts' => array('friends'))); //friend request $menu_item = array("name" => "friend_request", "text" => elgg_echo("friend_request:menu") . $extra, "href" => "friend_request/" . $page_owner->username, "contexts" => array("friends", "friendsof", "collections")); elgg_register_menu_item("page", $menu_item); $title = elgg_echo('friends:collections:edit'); elgg_set_context('friends'); $content = elgg_view_form('friends/collections/edit', array(), array('friends' => elgg_get_logged_in_user_entity()->getFriends(array('limit' => 0)), 'collection' => get_access_collection($collection))); $body = elgg_view_layout('one_sidebar', array('title' => $title, 'content' => $content)); echo elgg_view_page($title, $body);
<?php /** * Front page for plugin repository */ global $CONFIG; elgg_set_context('plugin_project'); $welcome = elgg_view('plugins/front/main'); $sidebar = elgg_view('plugins/filters', array('categories' => $CONFIG->plugincats, 'versions' => $CONFIG->elgg_versions, 'licences' => $CONFIG->gpllicenses, 'settings' => $settings)); $bottom = elgg_view('plugins/front/bottom'); $body = elgg_view_layout('plugins_layout', array('content' => $welcome, 'sidebar' => $sidebar, 'bottom' => $bottom)); echo elgg_view_page(elgg_echo("plugins:all"), $body);
<?php /** * Elgg notifications plugin index * * @package ElggNotifications * * @uses $user ElggUser */ if (!isset($user) || !$user instanceof ElggUser) { $url = 'notifications/personal/' . elgg_get_logged_in_user_entity()->username; forward($url); } elgg_set_page_owner_guid($user->guid); // Set the context to settings elgg_set_context('settings'); $title = elgg_echo('notifications:subscriptions:changesettings'); elgg_push_breadcrumb(elgg_echo('settings'), "settings/user/{$user->username}"); elgg_push_breadcrumb($title); // Get the form $people = array(); if ($people_ents = elgg_get_entities_from_relationship(array('relationship' => 'notify', 'relationship_guid' => $user->guid, 'types' => 'user', 'limit' => 99999))) { foreach ($people_ents as $ent) { $people[] = $ent->guid; } } $body = elgg_view('notifications/subscriptions/form', array('people' => $people, 'user' => $user)); $params = array('content' => $body, 'title' => $title); $body = elgg_view_layout('one_sidebar', $params); echo elgg_view_page($title, $body);
function favourites_page_handler($page) { elgg_set_context('favourites'); echo elgg_view_page(elgg_echo("favourites:items"), elgg_view_layout('one_sidebar', array('title' => elgg_echo("favourites:items"), 'content' => elgg_view('favourites/view'), 'sidebar' => elgg_view('favourites/sidebar')))); return true; }
/** * Page handler for friends collections * * @param array $page_elements Page elements * * @return bool * @access private */ function _elgg_collections_page_handler($page_elements) { elgg_set_context('friends'); $base = elgg_get_config('path'); if (isset($page_elements[0])) { switch ($page_elements[0]) { case 'add': elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); _elgg_setup_collections_menu(); require_once "{$base}pages/friends/collections/add.php"; return true; break; case 'owner': $user = get_user_by_username($page_elements[1]); if ($user) { elgg_set_page_owner_guid($user->getGUID()); if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) { _elgg_setup_collections_menu(); } require_once "{$base}pages/friends/collections/view.php"; return true; } break; } } return false; }
<?php /** * Manage subgroups page * * @package ElggSubroups */ elgg_load_library('elgg:subgroups'); $page_owner = elgg_get_page_owner_entity(); elgg_set_context('groups'); if (!$page_owner instanceof ElggGroup || !$page_owner->canEdit()) { forward($page_owner->getURL()); } elgg_push_breadcrumb(elgg_echo('group'), 'groups/all'); elgg_push_breadcrumb($page_owner->name, $page_owner->getURL()); $title = elgg_echo('subgroups:add'); elgg_push_breadcrumb($title); elgg_register_title_button('subgroups', 'new'); elgg_register_menu_item('title', array('name' => 'add_existing', 'href' => "#subgroups-add", 'text' => elgg_echo("subgroups:add_existing"), 'rel' => 'toggle', 'link_class' => 'elgg-button elgg-button-action', 'priority' => 200)); $form_vars = array('class' => 'hidden', 'id' => 'subgroups-add'); $body_vars = array('group' => $page_owner); $content = elgg_view_form('subgroups/add', $form_vars, $body_vars); $content .= list_subgroups($page_owner); $body = elgg_view_layout('content', array('content' => $content, 'title' => $title, 'filter' => '')); echo elgg_view_page($title, $body);
<?php /** * All videos * * @package ElggVideolist */ elgg_push_breadcrumb(elgg_echo('videolist')); elgg_register_title_button(); $limit = get_input("limit", 10); $title = elgg_echo('videolist:all'); $content = elgg_list_entities(array('types' => 'object', 'subtypes' => 'videolist_item', 'limit' => $limit, 'full_view' => false)); $sidebar = elgg_view('videolist/sidebar'); elgg_set_context('videolist'); $body = elgg_view_layout('content', array('filter_context' => 'all', 'content' => $content, 'title' => $title, 'sidebar' => $sidebar)); // Finally draw the page echo elgg_view_page($title, $body);
/** * Sets the functional context of a page * * @deprecated 1.8 Use elgg_set_context() * * @param string $context The context of the page * * @return mixed Either the context string, or false on failure */ function set_context($context) { elgg_deprecated_notice('set_context() was deprecated by elgg_set_context().', 1.8); elgg_set_context($context); if (empty($context)) { return false; } return $context; }
* Given a GUID, this page will try and display any entity * * @package Elgg * @subpackage Core */ // Get the GUID of the entity we want to view $guid = (int) get_input('guid'); $shell = get_input('shell'); if ($shell == "no") { $shell = false; } else { $shell = true; } $context = get_input('context'); if ($context) { elgg_set_context($context); } // Get the entity, if possible if ($entity = get_entity($guid)) { if ($entity->container_guid) { elgg_set_page_owner_guid($entity->container_guid); } else { elgg_set_page_owner_guid($entity->owner_guid); } // Set the body to be the full view of the entity, and the title to be its title if ($entity instanceof ElggObject) { $title = $entity->title; } else { if ($entity instanceof ElggEntity) { $title = $entity->name; }