/** * Add menu items to the entity menu * * @param string $hook the name of the hook * @param string $type the type of the hook * @param \ElggMenuItem[] $returnvalue the current return value * @param array $params supplied params * * @return void|\ElggMenuItem[] */ public static function registerEntity($hook, $type, $returnvalue, $params) { if (!elgg_is_logged_in()) { return; } if (empty($params) || !is_array($params)) { return; } $entity = elgg_extract('entity', $params); if (!$entity instanceof \ElggEntity) { return; } if (!$entity->getGUID()) { // can sometimes happen for temp entities (eg search results) return; } // add quicklink toggle to registered entity types if (!quicklinks_can_link($entity->getType(), $entity->getSubtype())) { // no registered entity types found return; } $items = quicklinks_get_toggle_menu_items(['entity' => $entity]); if (empty($items)) { return; } foreach ($items as $item) { $returnvalue[] = $item; } return $returnvalue; }
/** * Used to login with facebook * * @access public * @return void */ function facebook_connect_login() { elgg_load_library('facebook'); // sanity check if (!facebook_connect_allow_sign_on_with_facebook()) { forward(); } if (elgg_is_logged_in()) { forward(); } $fbData = facebook_connect_get_fbdata(); if (isset($_GET['error'])) { forward(); } else { if (!empty($fbData['loginUrl'])) { forward($fbData['loginUrl'], 'facebook_connect'); } else { if (empty($fbData['user_profile']['id'])) { forward(); } else { $options = array('type' => 'user', 'plugin_user_setting_name_value_pairs' => array('uid' => $fbData['user_profile']['id'], 'access_token' => $fbData['user_profile']['accessToken']), 'plugin_user_setting_name_value_pairs_operator' => 'OR', 'limit' => 0); $users = elgg_get_entities_from_plugin_user_settings($options); if ($users) { if (count($users) == 1) { try { login($users[0], true); system_message(elgg_echo('facebook_connect:login:success')); elgg_set_plugin_user_setting('access_token', $fbData['user_profile']['accessToken'], $users[0]->guid); if (empty($users[0]->email)) { $user = get_entity($users[0]->guid); $user->email = $fbData['user_profile']['email']; $user->save(); } } catch (LoginException $e) { register_error($e->getMessage()); forward(REFERER); } } else { system_message(elgg_echo('facebook_connect:login:error')); } forward(); } else { $user = facebook_connect_create_update_user($fbData); // login new user try { login($user, true); system_message(elgg_echo('facebook_connect:login:success')); forward("profile/", 'facebook_connect'); } catch (LoginException $e) { register_error($e->getMessage()); forward(REFERER); } } // register login error register_error(elgg_echo('facebook_connect:login:error')); forward(); } } } }
/** * Add a like button to river actions */ function likes_river_menu_setup($hook, $type, $return, $params) { if (elgg_is_logged_in()) { $item = $params['item']; // only like group creation #3958 if ($item->type == "group" && $item->view != "river/group/create") { return $return; } // don't like users #4116 if ($item->type == "user") { return $return; } $object = $item->getObjectEntity(); if (!elgg_in_context('widgets') && $item->annotation_id == 0) { if ($object->canAnnotate(0, 'likes')) { // like button $options = array('name' => 'likes', 'href' => false, 'text' => elgg_view('likes/button', array('entity' => $object)), 'is_action' => true, 'priority' => 100); $return[] = ElggMenuItem::factory($options); // likes count $count = elgg_view('likes/count', array('entity' => $object)); if ($count) { $options = array('name' => 'likes_count', 'text' => $count, 'href' => false, 'priority' => 101); $return[] = ElggMenuItem::factory($options); } } } } return $return; }
/** * Register title menu items for an event * * @param Event $event * @return void */ function register_event_title_menu($event, $ts = null, $calendar = null) { if (!$event instanceof Event) { return; } $calendar_count = 0; if (elgg_is_logged_in()) { $calendar_count = Calendar::getCalendars(elgg_get_logged_in_user_entity(), true); } if ($calendar_count) { // may be different than the calendar being viewed // make the add/remove button work for the current calendar if they own it // or their default calendar if they're viewing another calendar if ($calendar->owner_guid == elgg_get_logged_in_user_guid()) { $mycalendar = $calendar; } else { $mycalendar = Calendar::getPublicCalendar(elgg_get_logged_in_user_entity()); } $text = elgg_echo('events:add_to_calendar:default'); $add_remove_calendar = $mycalendar->guid; if ($mycalendar->hasEvent($event)) { $text = elgg_echo('events:remove_from_calendar:default'); $add_remove_calendar = ''; } elgg_register_menu_item('title', array('name' => 'add_to_calendar', 'href' => elgg_http_add_url_query_elements('action/calendar/add_event', array('event_guid' => $event->guid, 'calendars[]' => $add_remove_calendar)), 'is_action' => true, 'data-object-event' => true, 'data-guid' => $event->guid, 'text' => $text, 'data-calendar-count' => $calendar_count, 'link_class' => 'elgg-button elgg-button-action events-ui-event-action-addtocalendar', 'priority' => 100)); } if ($event->canEdit()) { elgg_register_menu_item('title', array('name' => 'delete', 'text' => elgg_echo('events_ui:cancel'), 'href' => 'action/events/cancel?guid=' . $event->guid . '&ts=' . $ts, 'is_action' => true, 'link_class' => 'elgg-button elgg-button-delete elgg-requires-confirmation events-ui-event-action-cancel', 'data-object-event' => true, 'data-guid' => $event->guid, 'priority' => 300)); } if ($event->canEdit() && $event->isRecurring()) { elgg_register_menu_item('title', array('name' => 'delete_all', 'text' => elgg_echo('events_ui:cancel:all'), 'href' => 'action/events/delete?guid=' . $event->guid, 'is_action' => true, 'link_class' => 'elgg-button elgg-button-delete elgg-requires-confirmation events-ui-event-action-cancel-all', 'rel' => elgg_echo('events_ui:cancel:all:confirm'), 'data-object-event' => true, 'data-guid' => $event->guid, 'priority' => 400)); } }
/** * function to handle the nice urls for Custom Profile Fields * * @param $page * @return unknown_type */ function profile_manager_page_handler($page) { switch ($page[0]) { case "forms": $form = $page[1]; if (!empty($form) && elgg_is_admin_logged_in()) { set_input("guid", $page[2]); include dirname(__FILE__) . "/pages/forms/" . $form . ".php"; return true; } break; case "validate_username": if (elgg_is_logged_in()) { $new_username = get_input("username"); $valid = false; if (!empty($new_username)) { $valid = profile_manager_validate_username($new_username); } $result = array("valid" => $valid); echo json_encode($result); return true; } break; case "user_summary_control": include dirname(__FILE__) . "/pages/user_summary_control/preview.php"; return true; } }
/** * External pages page handler * * @param array $page URL segements * @param string $handler Handler identifier * @return bool */ function expages_page_handler($page, $handler) { if ($handler == 'expages') { expages_url_forwarder($page[1]); } $type = strtolower($handler); $title = elgg_echo("expages:{$type}"); $header = elgg_view_title($title); $object = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1)); if ($object) { $content .= elgg_view('output/longtext', array('value' => $object[0]->description)); } else { $content .= elgg_echo("expages:notset"); } $content = elgg_view('expages/wrapper', array('content' => $content)); if (elgg_is_logged_in() || !elgg_get_config('walled_garden')) { $body = elgg_view_layout('one_column', array('title' => $title, 'content' => $content)); echo elgg_view_page($title, $body); } else { elgg_load_css('elgg.walled_garden'); $body = elgg_view_layout('walled_garden', array('content' => $header . $content)); echo elgg_view_page($title, $body, 'walled_garden'); } return true; }
function http_blacklist_init() { if (!elgg_is_logged_in() && elgg_get_plugin_setting("httpblkey", "http_blacklist")) { elgg_register_plugin_hook_handler('route', 'all', 'http_blacklist_router'); } elgg_register_action('http_blacklist/reset', elgg_get_plugins_path() . 'http_blacklist/actions/http_blacklist/reset.php', 'admin'); }
/** * Set up entity menu for pool objects * * @param string $hook 'register' * @param string $type 'menu:entity' * @param ElggMenuItem[] $return * @param array $params * @return ElggMenuItem[] */ function pool_entity_menu($hook, $type, $return, $params) { $handler = elgg_extract('handler', $params, false); if ($handler != 'task_pool') { return $return; } if (elgg_is_logged_in()) { $entity = $params['entity']; $user_guid = elgg_get_logged_in_user_guid(); if ($entity->isMember($user_guid)) { $text = elgg_echo('pool:leave'); } else { $text = elgg_echo('pool:join'); } $return[] = ElggMenuItem::factory(array('name' => 'test', 'text' => "<span>{$text}</span>", 'href' => "action/pool/toggle_membership?pool_guid={$entity->guid}&user_guid={$user_guid}", 'priority' => 150, 'is_action' => true)); if (elgg_is_admin_logged_in()) { $return[] = ElggMenuItem::factory(array('name' => 'edit', 'text' => elgg_echo('edit'), 'href' => "admin/pool/save?guid={$entity->guid}")); $return[] = ElggMenuItem::factory(array('name' => 'delete', 'text' => elgg_view_icon('delete'), 'href' => "action/pool/admin/delete?guid={$entity->guid}", 'is_action' => true, 'confirm' => elgg_echo('question:areyousure'), 'priority' => 200)); if ($entity->countMembers()) { $return[] = ElggMenuItem::factory(array('name' => 'shift', 'text' => elgg_echo('pool:shift'), 'href' => "action/pool/shift?guid={$entity->guid}", 'priority' => 150, 'is_action' => true, 'confirm' => elgg_echo('question:areyousure'))); } } } return $return; }
function au_staff_options($pageowner) { $user = elgg_get_logged_in_user_entity(); $group = elgg_get_page_owner_entity(); if (elgg_instanceof($group, 'group')) { //check group attributes - ignore if au staff if ($group->staff_only_enable == 'yes') { elgg_extend_view('group/default', 'groups/sidebar/staff_only', 502); //do stuff if this is a staff-only group //system_message("AU staff-only group: only AU staff members can join this group"); if (elgg_is_logged_in()) { $invited = check_entity_relationship($group->getGUID(), "invited", $user->getGUID()); //allow invited users in if (is_au_staff_member($user) || elgg_is_admin_logged_in() || $group->canEdit() || $invited) { //do other stuff - welcome here } else { //remove buttons for non staff members who are not members of the group and not invited if (!$group->isMember($user)) { elgg_register_plugin_hook_handler('register', 'menu:title', 'au_landing_remove_group_join_button', 9999); //remove the link we added in groups_ux to allow joining from discussion forum elgg_unextend_view('discussion/replies', 'discussion/replies/join'); } } } } else { //this is a normal group } } else { //not a group, do nothing } }
function language_selector_plugins_boot() { global $CONFIG; if (!elgg_is_logged_in()) { if (!empty($_COOKIE['client_language'])) { // switched with language selector $new_lang = $_COOKIE['client_language']; } else { $browserlang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); if (!empty($browserlang)) { // autodetect language if (elgg_get_plugin_setting("autodetect", "language_selector") == "yes") { $new_lang = $browserlang; } } } if (!empty($new_lang) && $new_lang !== $CONFIG->language) { // set new language $CONFIG->language = $new_lang; // language has been change; reload language keys if (elgg_is_active_plugin("translation_editor")) { translation_editor_load_translations(); } else { reload_all_translations(); } } } elgg_extend_view("css/elgg", "language_selector/css/site"); }
/** * Sets up submenus. Triggered on pagesetup. * */ function add_submenus() { $plugins_base = elgg_get_site_url() . "plugins"; if (elgg_get_context() == 'admin') { elgg_register_admin_menu_item('administer', 'statistics', 'community_plugins'); elgg_register_admin_menu_item('administer', 'utilities', 'community_plugins'); elgg_register_admin_menu_item('configure', 'community_plugins', 'settings'); return; } if (elgg_get_context() != "plugins") { return; } $page_owner = elgg_get_page_owner_entity(); if (elgg_is_logged_in() && elgg_get_page_owner_guid() == elgg_get_logged_in_user_guid()) { elgg_register_menu_item('page', array('href' => "{$plugins_base}/developer/{$page_owner->username}", 'name' => 'plugins:yours', 'text' => elgg_echo("plugins:yours", array(elgg_echo('plugins:types:'))))); } else { if (elgg_get_page_owner_guid()) { $title = elgg_echo("plugins:user", array($page_owner->name, elgg_echo('plugins:types:'))); elgg_register_menu_item('page', array('href' => "{$plugins_base}/developer/{$page_owner->username}", 'name' => 'plugins:user', 'text' => $title)); } } elgg_register_menu_item('page', array('href' => '/plugins', 'name' => 'plugins:all', 'text' => elgg_echo('plugins:all'))); // add upload link when viewing own plugin page if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) { elgg_register_menu_item('page', array('href' => "{$plugins_base}/new/project/{$page_owner->username}", 'name' => 'plugins:upload', 'text' => elgg_echo('plugins:upload'))); } }
/** * page setup event */ function pagesetup() { // add to site links if (elgg_is_logged_in()) { $item = new \ElggMenuItem('trip_companions', elgg_echo('trip_companions:new:people'), 'trip_companions'); elgg_register_menu_item('site', $item); } /*elgg_register_menu_item('page', array( 'name' => 'trip_companions_all', 'text' => elgg_echo('trip_companions:all'), 'href' => 'trip_companions', 'contexts' => array( 'trip_companions' ) )); elgg_register_menu_item('page', array( 'name' => 'trip_companions_friends', 'text' => elgg_echo('trip_companions:friends:only'), 'href' => 'trip_companions/friends', 'contexts' => array( 'trip_companions' ) ));*/ elgg_register_menu_item('page', array('name' => 'trip_companions_groups', 'text' => elgg_echo('trip_companions'), 'href' => 'trip_companions/groups', 'contexts' => array('trip_companions'))); }
function aalborg_theme_pagesetup() { elgg_unextend_view('page/elements/header', 'search/header'); if (elgg_is_logged_in()) { elgg_extend_view('page/elements/sidebar', 'search/header', 0); } elgg_unregister_menu_item('topbar', 'dashboard'); if (elgg_is_active_plugin('dashboard')) { elgg_register_menu_item('site', array('name' => 'dashboard', 'href' => 'dashboard', 'text' => elgg_echo('dashboard'))); } if (elgg_is_logged_in()) { $user = elgg_get_logged_in_user_entity(); elgg_register_menu_item('topbar', array('name' => 'account', 'text' => elgg_echo('account'), 'href' => "#", 'priority' => 100, 'section' => 'alt', 'link_class' => 'elgg-topbar-dropdown')); elgg_unregister_menu_item('topbar', 'usersettings'); elgg_register_menu_item('topbar', array('name' => 'usersettings', 'parent_name' => 'account', 'href' => "/settings/user/{$user->username}", 'text' => elgg_echo('settings'), 'priority' => 103, 'section' => 'alt')); elgg_unregister_menu_item('topbar', 'logout'); elgg_register_menu_item('topbar', array('name' => 'logout', 'parent_name' => 'account', 'href' => '/action/logout', 'is_action' => TRUE, 'text' => elgg_echo('logout'), 'priority' => 104, 'section' => 'alt')); elgg_unregister_menu_item('topbar', 'administration'); if (elgg_is_admin_logged_in()) { elgg_register_menu_item('topbar', array('name' => 'administration', 'parent_name' => 'account', 'href' => 'admin', 'text' => elgg_echo('admin'), 'priority' => 101, 'section' => 'alt')); } elgg_unregister_menu_item('footer', 'report_this'); if (elgg_is_active_plugin('reportedcontent')) { $href = "javascript:elgg.forward('reportedcontent/add'"; $href .= "+'?address='+encodeURIComponent(location.href)"; $href .= "+'&title='+encodeURIComponent(document.title));"; elgg_register_menu_item('extras', array('name' => 'report_this', 'href' => $href, 'title' => elgg_echo('reportedcontent:this:tooltip'), 'text' => elgg_view_icon('report-this'), 'priority' => 500)); } } }
/** * Sets the language for the logged out user * * @return void */ function language_selector_set_logged_out_user_language() { global $CONFIG; if (elgg_is_logged_in()) { return; } if (!empty($_COOKIE['client_language'])) { // switched with language selector $new_lang = $_COOKIE['client_language']; } else { $browserlang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); if (!empty($browserlang)) { // autodetect language if (elgg_get_plugin_setting("autodetect", "language_selector") == "yes") { $new_lang = $browserlang; } } } if (!empty($new_lang) && $new_lang !== $CONFIG->language) { $allowed = language_selector_get_allowed_translations(); if (in_array($new_lang, $allowed)) { // set new language $CONFIG->language = $new_lang; // language has been change; reload language keys if (elgg_is_active_plugin("translation_editor")) { translation_editor_load_translations(); } else { reload_all_translations(); } } } }
function extended_profile_page_handler($page) { if (isset($page[0])) { $username = $page[0]; $user = get_user_by_username($username); elgg_set_page_owner_guid($user->guid); } elseif (elgg_is_logged_in()) { forward(elgg_get_logged_in_user_entity()->getURL()); } // short circuit if invalid or banned username if (!$user || $user->isBanned() && !elgg_is_admin_logged_in()) { register_error(elgg_echo('profile:notfound')); forward(); } $action = NULL; if (isset($page[1])) { $action = $page[1]; } if ($action == 'edit') { // use the core profile edit page $base_dir = elgg_get_root_path(); require "{$base_dir}pages/profile/edit.php"; return true; } // main profile page $params = array('content' => elgg_view('profile/wrapper'), 'num_columns' => 3); $content = elgg_view_layout('profile_widgets', $params); $body = elgg_view_layout('one_column', array('content' => $content)); echo elgg_view_page($user->name, $body); return true; }
/** * Add widget title link if Widget Manager is enabled. * * @param string $hook the name of the hook * @param string $type the type of the hook * @param array $return_value current return value * @param array $params supplied params * * @return void|string */ public static function widgetURL($hook, $type, $return_value, $params) { if (!empty($return_value)) { // url already set return; } if (elgg_is_logged_in()) { // already logged in return; } $widget = elgg_extract('entity', $params); if (!$widget instanceof \ElggWidget) { return; } if ($widget->handler !== 'simplesaml') { return; } $samlsource = $widget->samlsource; if (empty($samlsource) || $samlsource === 'all') { return; } if (!simplesaml_is_enabled_source($samlsource)) { return; } return "/saml/login/{$samlsource}"; }
/** * */ public function setUp($hook, $type, $menu, $params) { if (!elgg_is_logged_in()) { return $menu; } $user = elgg_get_logged_in_user_entity(); if (!$user->isAdmin() && $user->role !== 'curator') { return $menu; } $entity = $params['entity']; if (elgg_get_plugin_user_setting('not_exposable', $entity->owner_guid, 'expozeum') == false) { // We don't want to feature users, sites nor groups if (!elgg_instanceof($entity, 'object', 'hjalbumimage')) { return $menu; } if ($entity->expozeum) { $action = 'unexpozeum'; $icon = 'eye-alt'; //$text = 'unexpozeum'; } else { $action = 'expozeum'; $icon = 'eye'; //$text = 'expozeum'; } $menu[] = ElggMenuItem::factory(array('name' => 'expozeum', 'text' => elgg_view_icon($icon), 'href' => "action/expozeum_content/{$action}?guid={$entity->guid}", 'is_action' => true)); return $menu; } return $menu; }
/** * {@inheritdoc} */ public function getFilterOptions() { $options = $this->getOptions(); $filter_options = array('', 'open', 'closed', 'featured'); if (elgg_is_logged_in()) { $filter_options[] = 'member'; if (elgg_get_plugin_setting('limited_groups', 'groups') != 'yes' || elgg_is_admin_logged_in()) { $filter_options[] = 'admin'; } $filter_options[] = 'invited'; $filter_options[] = 'membership_request'; } $params = ['list' => $this]; $filter_options = elgg_trigger_plugin_hook('sort_relationships', 'group', $params, $filter_options); $subtypes = elgg_extract('subtype', $options); if (!$subtypes) { $subtypes = elgg_extract('subtypes', $options); } if (!empty($subtypes)) { $subtypes = (array) $subtypes; $subtype = $subtypes[0]; $filter_options = elgg_trigger_plugin_hook('sort_relationships', "group:{$subtype}", $params, $filter_options); } return $filter_options; }
function follow_tags_init() { //Register Save Action for saving and changing FollowTags elgg_register_action("follow_tags/save", dirname(__FILE__) . '/action/save.php'); //Register a River Tab if (elgg_is_logged_in()) { $user = elgg_get_logged_in_user_entity(); elgg_register_menu_item('filter', array('name' => 'tags', 'href' => "/activity/tags", 'text' => elgg_echo("follow_tags:tab:title"), 'priority' => 500, 'contexts' => array('activity'))); //Register a Sidebar Item for Usersettings elgg_register_menu_item('page', array('name' => "follow_tags", 'text' => elgg_echo("follow_tags:sidebar:title"), 'href' => "follow_tags/settings/" . $user->username, 'context' => "settings")); } elgg_register_plugin_hook_handler("route", "activity", "follow_tags_route_activity_hook"); //Register Pagehandlers elgg_register_page_handler('follow_tags', 'follow_tags_page_handler'); elgg_register_page_handler('follow_tags_data', 'follow_tags_data_page_handler'); //Register JS and CSS for custom taginput field $js_url = 'mod/follow_tags/vendors/jquery.tagsinput.min.js'; elgg_register_js('jquery.tagsinput', $js_url, 'footer'); // Register CSS for TagInput $css_url = 'mod/follow_tags/vendors/jquery.tagsinput.css'; elgg_register_css('jquery.tagsinput', $css_url); // extend tags to include js/css just in time elgg_extend_view("input/tags", "follow_tags/extends/tags"); // Add a JavaScript Initialization elgg_extend_view('js/elgg', 'js/follow_tags/site'); // Run the followtags_notofy function in event is triggerd elgg_register_event_handler('create', 'object', 'follow_tags_notify', 501); }
/** * External pages page handler * * @param array $page URL segements * @param string $handler Handler identifier * @return bool */ function expages_page_handler($page, $handler) { if ($handler == 'expages') { expages_url_forwarder($page[1]); } $type = strtolower($handler); $title = elgg_echo("expages:{$type}"); $header = elgg_view_title($title); $object = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1)); if ($object) { $content .= elgg_view('output/longtext', array('value' => $object[0]->description)); } else { $content .= elgg_echo("expages:notset"); } $content = elgg_view('expages/wrapper', array('content' => $content)); if (elgg_is_admin_logged_in()) { elgg_register_menu_item('title', array('name' => 'edit', 'text' => elgg_echo('edit'), 'href' => "admin/appearance/expages?type={$type}", 'link_class' => 'elgg-button elgg-button-action')); } if (elgg_is_logged_in() || !elgg_get_config('walled_garden')) { $body = elgg_view_layout('one_column', array('title' => $title, 'content' => $content)); echo elgg_view_page($title, $body); } else { elgg_load_css('elgg.walled_garden'); $body = elgg_view_layout('walled_garden', array('content' => $header . $content)); echo elgg_view_page($title, $body, 'walled_garden'); } return true; }
function basic_pagesetup_handler() { elgg_unextend_view('page/elements/header', 'search/header'); elgg_unregister_menu_item('topbar', 'dashboard'); elgg_unregister_menu_item('topbar', 'elgg_logo'); // Extend footer with copyright $year = date('Y'); $href = "http://www.perjensen-online.dk"; elgg_register_menu_item('footer', array('name' => 'copyright_this', 'href' => $href, 'title' => elgg_echo('basic_light:tooltip'), 'text' => elgg_echo('basic_light:copyright') . $year . elgg_echo(' Elggzone'), 'priority' => 1, 'section' => 'alt')); // Extend footer with elgg link $href = "http://elgg.org"; elgg_register_menu_item('footer', array('name' => 'elgg', 'href' => $href, 'text' => elgg_echo('basic_light:elgg'), 'priority' => 2, 'section' => 'alt')); if (elgg_is_logged_in()) { $user = elgg_get_logged_in_user_entity(); if (elgg_is_active_plugin('dashboard')) { elgg_register_menu_item('topbar', array('name' => 'dashboard', 'href' => 'dashboard', 'text' => elgg_view_icon('home') . elgg_echo('dashboard'), 'priority' => 1000, 'section' => 'alt')); } if (elgg_is_active_plugin('reportedcontent')) { elgg_unregister_menu_item('footer', 'report_this'); $href = "javascript:elgg.forward('reportedcontent/add'"; $href .= "+'?address='+encodeURIComponent(location.href)"; $href .= "+'&title='+encodeURIComponent(document.title));"; elgg_register_menu_item('extras', array('name' => 'report_this', 'href' => $href, 'text' => elgg_view_icon('report-this') . elgg_echo(''), 'title' => elgg_echo('reportedcontent:this:tooltip'), 'priority' => 100)); } } }
function faq_init() { // Extend CSS elgg_extend_view("css/elgg", "faq/css"); if (elgg_get_plugin_setting("publicAvailable", "faq") == "yes" || elgg_is_admin_logged_in()) { // Register a page handler, so we can have nice URLs elgg_register_page_handler('faq', 'faq_page_handler'); if (elgg_get_plugin_setting("publicAvailable_sitemenu", "faq") == "yes" || elgg_is_logged_in()) { // Add menu item elgg_register_menu_item('site', array('name' => elgg_echo("faq:shorttitle"), 'text' => elgg_echo("faq:shorttitle"), 'href' => elgg_get_site_url() . "faq/")); } if (elgg_get_plugin_setting("publicAvailable_footerlink", "faq") == "yes" || elgg_is_logged_in()) { // Add footer link faq_setup_footer_menu(); } // Register faq pages as public pages for walled-garden elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'faq_public'); // Register Actions $base_dir = elgg_get_plugins_path() . 'faq/actions/faq/'; elgg_register_action("faq/add", $base_dir . "add.php", "admin"); elgg_register_action("faq/delete", $base_dir . "delete.php", "admin"); elgg_register_action("faq/edit", $base_dir . "edit.php", "admin"); elgg_register_action("faq/search", $base_dir . "search.php", "public"); elgg_register_action("faq/changeCategory", $base_dir . "changeCategory.php", "admin"); if (elgg_get_plugin_setting("userQuestions", "faq") == "yes") { elgg_register_action("faq/ask", $base_dir . "ask.php", "logged_in"); elgg_register_action("faq/answer", $base_dir . "answer.php", "admin"); } // Register FAQs for site search elgg_register_entity_type("object", "faq"); elgg_register_plugin_hook_handler('search', 'object:faq', 'faq_search_hook'); } }
/** * Handles embedded URLs * * @param array $page URL segments * @return boolean */ function handlePages($page) { $url = get_input('url'); $handle = get_input('handle'); $iframe = get_input('iframe', false); $site = elgg_get_site_entity(); if (!$handle) { $handle = $site->guid; } if (!$url || !$handle) { return false; } $parse = elgg_is_logged_in(); switch ($page[0]) { default: $data = $this->model->get($url, $handle, $parse); $layout = elgg_view('output/card', array('href' => $url, 'handle' => $handle)); $shell = $iframe ? 'iframe' : 'default'; echo elgg_view_page($data['title'], $layout, $shell); break; case 'json': $data = $this->model->get($url, $handle, $parse); header('Content-Type: application/json'); echo json_encode($data); exit; } return true; }
/** * Set up items for user_hover menu */ public function setUp($hook, $type, $menu, $params) { if (!elgg_is_logged_in()) { return $menu; } $current_user = elgg_get_logged_in_user_entity(); // Allow only admins and publishers to grant/remove publisher roles if (!$current_user->isAdmin() && $current_user->role !== 'curator') { return $menu; } $user = $params['entity']; // User cannot make/unmake himseld a publisher if ($user->guid === $current_user->guid) { return $menu; } if (!$user instanceof ElggUser) { return $menu; } if ($user->role === 'curator') { $action = 'unmake_curator'; $text = elgg_echo('expozeum_content:unmake_curator'); } else { $action = 'make_curator'; $text = elgg_echo('expozeum_content:make_curator'); } $menu[] = ElggMenuItem::factory(array('name' => 'curator', 'text' => $text, 'href' => "action/expozeum_content/{$action}?guid={$user->guid}", 'is_action' => true)); return $menu; }
/** * Profile page handler * * @param array $page Array of URL segments passed by the page handling mechanism * @return bool */ function profile_page_handler($page) { if (isset($page[0])) { $username = $page[0]; $user = get_user_by_username($username); elgg_set_page_owner_guid($user->guid); } elseif (elgg_is_logged_in()) { forward(elgg_get_logged_in_user_entity()->getURL()); } // short circuit if invalid or banned username if (!$user || $user->isBanned() && !elgg_is_admin_logged_in()) { register_error(elgg_echo('profile:notfound')); forward(); } $action = NULL; if (isset($page[1])) { $action = $page[1]; } if ($action == 'edit') { // use the core profile edit page echo elgg_view_resource('profile/edit'); return true; } echo elgg_view_resource('profile/view', ['username' => $page[0]]); return true; }
function event_manager_entity_menu($hook, $entity_type, $returnvalue, $params) { $result = $returnvalue; if (elgg_in_context("widgets")) { return $result; } if (($entity = elgg_extract("entity", $params)) && elgg_instanceof($entity, "object", Event::SUBTYPE)) { $attendee_menu_options = array("name" => "attendee_count", "priority" => 50, "text" => elgg_echo("event_manager:event:relationship:event_attending:entity_menu", array($entity->countAttendees())), "href" => false); $result[] = ElggMenuItem::factory($attendee_menu_options); // change some of the basic menus if (!empty($result) && is_array($result)) { foreach ($result as &$item) { switch ($item->getName()) { case "edit": $item->setHref("events/event/edit/" . $entity->getGUID()); break; case "delete": $href = elgg_get_site_url() . "action/event_manager/event/delete?guid=" . $entity->getGUID(); $href = elgg_add_action_tokens_to_url($href); $item->setHref($href); $item->setConfirmText(elgg_echo("deleteconfirm")); break; } } } // show an unregister link for non logged in users if (!elgg_is_logged_in() && $entity->register_nologin) { $result[] = ElggMenuItem::factory(array("name" => "unsubscribe", "text" => elgg_echo("event_manager:menu:unsubscribe"), "href" => "events/unsubscribe/" . $entity->getGUID() . "/" . elgg_get_friendly_title($entity->title), "priority" => 300)); } } return $result; }
function LoginUser($tool_provider) { // Clear any existing sessions if (elgg_is_logged_in()) { logout(); } $values = GetPluginSettings(); $userprovision = $values['userprovision']; $user_id = $tool_provider->user->getID(BasicLTI_Tool_Provider::ID_SCOPE_GLOBAL); $consumer_key = $tool_provider->consumer->guid; $context_id = $tool_provider->user->context->id; // Does user exist $user = CheckLTIUser($user_id); // Provision user, if on and needed if (empty($user)) { if ($userprovision) { $user = CreateLTIUser($consumer_key, $context_id, $tool_provider->user); if (empty($user)) { forward(); } } else { system_message(elgg_echo('LTI:info:noprovision')); forward(); exit; } } // Set up current context id $user->context_id = $context_id; $user->email = $tool_provider->user->email; $user->name = $tool_provider->user->fullname; $user->save(); // Login $result = login($user, false); return $result; }
/** * Add a like button to river actions */ function likes_river_menu_setup($hook, $type, $return, $params) { if (!elgg_is_logged_in() || elgg_in_context('widgets')) { return; } $item = $params['item']; /* @var ElggRiverItem $item */ // only like group creation #3958 if ($item->type == "group" && $item->view != "river/group/create") { return; } // don't like users #4116 if ($item->type == "user") { return; } if ($item->annotation_id != 0) { return; } $object = $item->getObjectEntity(); if (!$object || !$object->canAnnotate(0, 'likes')) { return; } $hasLiked = \Elgg\Likes\DataService::instance()->currentUserLikesEntity($object->guid); // Always register both. That makes it super easy to toggle with javascript $return[] = ElggMenuItem::factory(array('name' => 'likes', 'href' => elgg_add_action_tokens_to_url("/action/likes/add?guid={$object->guid}"), 'text' => elgg_view_icon('thumbs-up'), 'title' => elgg_echo('likes:likethis'), 'item_class' => $hasLiked ? 'hidden' : '', 'priority' => 100)); $return[] = ElggMenuItem::factory(array('name' => 'unlike', 'href' => elgg_add_action_tokens_to_url("/action/likes/delete?guid={$object->guid}"), 'text' => elgg_view_icon('thumbs-up-alt'), 'title' => elgg_echo('likes:remove'), 'item_class' => $hasLiked ? '' : 'hidden', 'priority' => 100)); // likes count $count = elgg_view('likes/count', array('entity' => $object)); if ($count) { $return[] = ElggMenuItem::factory(array('name' => 'likes_count', 'text' => $count, 'href' => false, 'priority' => 101)); } return $return; }
/** * Init the OhYesChat * * @access system * @return null; */ function OhYesChat() { $plugin = elgg_get_plugins_path() . 'OhYesChat/'; elgg_register_simplecache_view('css/ohyes/ohyeschat'); $ohyescss = elgg_get_simplecache_url('css', 'ohyes/ohyeschat'); elgg_register_css('ohyeschat.css', $ohyescss); elgg_register_simplecache_view('css/ohyes/ohyeschat.admin'); $ohyescssadmin = elgg_get_simplecache_url('css', 'ohyes/ohyeschat.admin'); elgg_register_css('ohyeschat.admin.css', $ohyescssadmin); elgg_register_simplecache_view('js/ohyes/ohyescha'); $ohyesjs = elgg_get_simplecache_url('js', 'ohyes/ohyeschat'); elgg_register_js('ohyeschat.js', $ohyesjs); if (elgg_is_logged_in()) { elgg_register_page_handler('ohyeschat', 'ohyeschat_page_handler'); elgg_register_page_handler('chat', 'ohyeschat_page_handler'); } elgg_register_action('ohyes/chat/deletemssages', "{$plugin}actions/admin/deletemssages.php", 'admin'); elgg_extend_view('page/elements/foot', 'ohyes/chat/bar'); elgg_extend_view('page/elements/body', 'ohyes/header/chat', 1); elgg_extend_view('page/elements/body', 'ohyes/chat/sound'); OhYesChat::loadCss(); OhYesChat::loadJs(); run_function_once('ohyeschat_setup'); //register menu items OhYesChat::RegisterMenus(); }
/** * Profile page handler * * @param array $page Array of URL segments passed by the page handling mechanism * @return bool */ function theme_ffd_profile_page_handler($page) { if (isset($page[0])) { $username = $page[0]; $user = get_user_by_username($username); elgg_set_page_owner_guid($user->guid); } elseif (elgg_is_logged_in()) { forward(elgg_get_logged_in_user_entity()->getURL()); } // short circuit if invalid or banned username if (!$user || $user->isBanned() && !elgg_is_admin_logged_in()) { register_error(elgg_echo("profile:notfound")); forward(); } $action = NULL; if (isset($page[1])) { $action = $page[1]; } if ($action == "edit") { // use the core profile edit page $base_dir = elgg_get_root_path(); require "{$base_dir}pages/profile/edit.php"; return true; } // main profile page $content = elgg_view("profile/wrapper"); $body = elgg_view_layout("one_column", array("content" => $content)); echo elgg_view_page($user->name, $body); return true; }