/** * Vouchers plugin initialization functions. */ function vouchers_init() { // register a library of helper functions elgg_register_library('elgg:vouchers', elgg_get_plugins_path() . 'vouchers/lib/vouchers.php'); // Register subtype run_function_once('vouchers_manager_run_once_subtypes'); // Register entity_type for search elgg_register_entity_type('object', Voucher::SUBTYPE); // Site navigation $item = new ElggMenuItem('vouchers', elgg_echo('vouchers:menu'), 'vouchers/all'); elgg_register_menu_item('site', $item); // Extend CSS elgg_extend_view('css/elgg', 'vouchers/css'); elgg_register_css('vouchers_tooltip_css', '//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css'); // Extend js elgg_register_js('vouchersjs', elgg_get_site_url() . 'mod/vouchers/assets/vouchers.js'); elgg_register_js('vouchers_tooltip_js', '//code.jquery.com/ui/1.11.1/jquery-ui.js'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('vouchers', 'vouchers_page_handler'); // Register a URL handler for voucher $release = get_version(true); // Register a URL handler for agora if ($release < 1.9) { // version 1.8 elgg_register_entity_url_handler('object', 'vouchers', 'voucher_url'); } else { // use this since Elgg 1.9 elgg_register_plugin_hook_handler('entity:url', 'object', 'vouchers_set_url'); } // Register menu item to an ownerblock elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'vouchers_owner_block_menu'); // Register admin transaction log menu under "Utilities" elgg_register_admin_menu_item('administer', 'vouchers_transactions_log', 'administer_utilities'); // register plugin hooks elgg_register_plugin_hook_handler("public_pages", "walled_garden", "vouchers_walled_garden_hook"); // Register actions $action_path = elgg_get_plugins_path() . 'vouchers/actions'; elgg_register_action("vouchers/addvoucher", "{$action_path}/addvoucher.php"); elgg_register_action("vouchers/delete", "{$action_path}/delvoucher.php"); elgg_register_action("vouchers/set_featured", "{$action_path}/vouchers/set_featured.php"); // set a voucher post as featured elgg_register_action("vouchers/unset_featured", "{$action_path}/vouchers/unset_featured.php"); // unset a voucher post from featured elgg_register_action("vouchers/get_with_points", "{$action_path}/vouchers/get_with_points.php"); // voucher purchase with points only elgg_register_action('vouchers/be_interested', "{$action_path}/be_interested.php"); // send interest elgg_register_action("vouchers/usersettings", "{$action_path}/usersettings.php"); // save user settings // extend group main page elgg_extend_view('groups/tool_latest', 'vouchers/group_module'); //elgg_extend_view("print", "printpreview/pageshell/pageshell"); // add the group vouchers tool option add_group_tool_option('vouchers', elgg_echo('vouchers:group:enablevouchers'), true); // Add vouchers widgets elgg_register_widget_type('vouchers', elgg_echo('vouchers:widget'), elgg_echo('vouchers:widget:description'), 'profile,groups,dashboard'); // member's voucher posts elgg_register_widget_type('vouchers_featured', elgg_echo('vouchers:widget:featured'), elgg_echo('vouchers:widget:featured:description'), 'dashboard'); // featured vouchers for dashboard }
/** * 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'))); } }
/** * Set some views_counter links on elgg system */ function views_counter_pagesetup() { if (elgg_is_admin_logged_in() && elgg_get_context() == 'admin' || elgg_get_context() == 'views_counter') { $item = new ElggMenuItem('views_counter_admin', elgg_echo('views_counter:admin_page'), elgg_get_site_url() . 'views_counter/list_entities/user'); elgg_register_menu_item('page', $item); } }
function wet4_theme_init() { //reload groups library to have our sidebar changes elgg_register_library('elgg:groups', elgg_get_plugins_path() . 'wet4/lib/groups.php'); elgg_register_event_handler('pagesetup', 'system', 'wet4_theme_pagesetup', 1000); elgg_register_event_handler('pagesetup', 'system', 'wet4_riverItem_remove'); elgg_register_event_handler('pagesetup', 'system', 'messages_notifier'); elgg_register_plugin_hook_handler('register', 'menu:entity', 'wet4_elgg_entity_menu_setup'); elgg_register_plugin_hook_handler('register', 'menu:river', 'wet4_elgg_river_menu_setup'); elgg_register_plugin_hook_handler('register', 'menu:entity', 'wet4_likes_entity_menu_setup', 400); //elgg_register_plugin_hook_handler('register', 'menu:entity', 'wet4_delete_entity_menu', 400); // theme specific CSS elgg_extend_view('css/elgg', 'wet4_theme/css'); //elgg_unextend_view('page/elements/header', 'search/header'); //elgg_extend_view('page/elements/sidebar', 'search/header', 0); elgg_register_plugin_hook_handler('head', 'page', 'wet4_theme_setup_head'); elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'my_owner_block_handler'); //replace files lost while removing require.js elgg_register_js('elgg/dev', elgg_get_site_url() . 'mod/wet4/views/default/js/elgg/dev.js', 'footer'); elgg_register_js('elgg/reportedcontent', elgg_get_site_url() . 'mod/wet4/views/default/js/elgg/reportedcontent.js', 'footer'); // non-members do not get visible links to RSS feeds if (!elgg_is_logged_in()) { elgg_unregister_plugin_hook_handler('output:before', 'layout', 'elgg_views_add_rss_link'); } }
/** * replace any http images with https urls * * @param type $h * @param type $t * @param type $r * @param type $p * @return type */ function view_hook($h, $t, $r, $p) { $http_url = str_replace('https://', 'http://', elgg_get_site_url()); if (preg_match_all('/<img[^>]+src\\s*=\\s*["\']?([^"\' ]+)[^>]*>/', $r, $extracted_image)) { foreach ($extracted_image[0] as $key => $i) { if (strpos($extracted_image[1][$key], elgg_get_site_url()) !== false) { continue; // already one of our links } // check if this is our url being requested over http, and rewrite to https if (strpos($extracted_image[1][$key], $http_url) === 0) { $https_image = str_replace('http://', 'https://', $extracted_image[1][$key]); $replacement_image = str_replace($extracted_image[1][$key], $https_image, $i); $r = str_replace($i, $replacement_image, $r); continue; } if (!is_https($extracted_image[1][$key])) { // replace this url $url = urlencode($extracted_image[1][$key]); if (strpos($url, 'http') === 0) { $token = get_token($extracted_image[1][$key]); $new_url = elgg_normalize_url('mod/image_proxy/image.php?url=' . $url . '&token=' . $token); $replacement_image = str_replace($extracted_image[1][$key], $new_url, $i); $r = str_replace($i, $replacement_image, $r); } } } } return $r; }
function event_manager_init() { // Register subtype run_function_once("event_manager_run_once_subtypes"); // Register entity_type for search elgg_register_entity_type("object", Event::SUBTYPE); elgg_extend_view("css/elgg", "event_manager/css/site"); elgg_extend_view("js/elgg", "js/event_manager/site"); elgg_extend_view("page/elements/head", "event_manager/metatags"); elgg_register_page_handler("events", "event_manager_page_handler"); // Register granular notification for this type register_notification_object("object", Event::SUBTYPE, elgg_echo("event_manager:notification:subject")); // Listen to notification events and supply a more useful message elgg_register_plugin_hook_handler("notify:entity:message", "object", "event_manager_notify_message"); // add site menu item elgg_register_menu_item("site", array("name" => "event_manager", "text" => elgg_echo("event_manager:menu:title"), "href" => "/events")); // add group tool option add_group_tool_option("event_manager", elgg_echo("groups:enableevents"), true); // add to group profile elgg_extend_view("groups/tool_latest", "event_manager/group_module"); // add widgets elgg_register_widget_type("events", elgg_echo("event_manager:widgets:events:title"), elgg_echo("event_manager:widgets:events:description"), "index,dashboard,profile,groups"); elgg_register_plugin_hook_handler("widget_url", "widget_manager", "event_manager_widget_events_url"); // register js libraries $maps_key = elgg_get_plugin_setting("google_api_key", "event_manager"); elgg_register_simplecache_view("js/event_manager/googlemaps"); $em_maps_js = elgg_get_simplecache_url("js", "event_manager/googlemaps"); elgg_register_js("event_manager.maps.helper", $em_maps_js); elgg_register_js("event_manager.maps.base", "//maps.googleapis.com/maps/api/js?key=" . $maps_key . "&sensor=true"); elgg_register_js("addthisevent", elgg_get_site_url() . "mod/event_manager/vendors/addthisevent/atemay.js"); }
/** * Generate an email activation code. * * @param int $user_guid The guid of the user * @param string $email_address Email address * @return string * @deprecated 2.3 */ function uservalidationbyemail_generate_code($user_guid, $email_address) { elgg_deprecated_notice(__FUNCTION__ . ' has been deprecated. Validation now relies on signed URL API', '2.3'); // Note: binding to site URL for multisite. $site_url = elgg_get_site_url(); return elgg_build_hmac([(int) $user_guid, $email_address, $site_url])->getToken(); }
function questions_notify_message_handler($hook, $entity_type, $returnvalue, $params) { $entity = $params['entity']; $to_entity = $params['to_entity']; $method = $params['method']; if (elgg_instanceof($entity, 'object', 'question')) { $descr = $entity->description; $title = $entity->title; $url = $entity->getURL(); $owner = $entity->getOwnerEntity(); $via = elgg_echo("questions:via"); if ($method == 'sms') { //shortening the url for sms $url = elgg_get_site_url() . "view/{$entity->guid}"; return "{$owner->name} {$via}: {$url} ({$title})"; } if ($method == 'email') { return "{$owner->name} {$via}: {$title} \n\n {$descr} \n\n {$url}"; } if ($method == 'web') { return "{$owner->name} {$via}: {$title} \n\n {$descr} \n\n {$url}"; } } return null; }
/** * Test to see if a given uuid is for this domain, returning true if so. * * @param string $uuid A unique ID * * @return bool */ function is_uuid_this_domain($uuid) { if (strpos($uuid, elgg_get_site_url()) === 0) { return true; } return false; }
/** * Adds a new menu item * * @param array $params parameters of the menu item * * @return void */ public function addMenuItem($params = []) { if (empty($params)) { return; } $defaults = ['access_id' => ACCESS_PUBLIC, 'is_action' => false, 'priority' => time()]; $menu_item = array_merge($defaults, $params); $current_config = $this->getMenuConfig(); $name = elgg_extract('name', $menu_item); if (empty($name)) { $time = time(); $name = "menu_name_{$time}"; while (array_key_exists($name, $current_config)) { $time++; $name = "menu_name_{$time}"; } $menu_item['name'] = $name; } if (isset($menu_item['href'])) { if (strpos($menu_item['href'], elgg_get_site_url()) === 0) { $menu_item['href'] = substr($menu_item['href'], strlen(elgg_get_site_url())); } } $current_config[$name] = $menu_item; $this->setMenuConfig($current_config); }
/** * parse allowable views and set classes on links for video rendering * * @staticvar type $allowable_views * @param type $hook * @param type $type * @param type $return * @param type $params * @return type */ function views_parse($hook, $type, $return, $params) { static $allowable_views, $allow_internal; if (!is_array($allowable_views)) { $allowable_views = get_allowable_views(); } if (!in_array($type, $allowable_views)) { return $return; } if (is_null($allow_internal)) { $allow_internal = elgg_get_plugin_setting('internal_urls', PLUGIN_ID, 0); } // we're potentially adding items elgg_require_js('embedly_cards/embedly_cards'); // mark all links as embedly-video and let embedly sort it out libxml_use_internal_errors(true); $doc = new \DOMDocument(); $doc->loadHTML($return); foreach ($doc->getElementsByTagName('a') as $tag) { $href = $tag->hasAttribute('href') ? $tag->getAttribute('href') : null; if (!$href || strpos($href, 'http') !== 0) { continue; } if (strpos($href, elgg_get_site_url()) === 0 && !$allow_internal) { continue; } $tag->setAttribute('class', ($tag->hasAttribute('class') ? $tag->getAttribute('class') . ' ' : '') . 'embedly-video'); } libxml_clear_errors(); return $doc->saveHTML(); }
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; }
/** * {@inheritdoc} */ protected function handle() { $uri = '/' . ltrim($this->argument('uri'), '/'); $method = $this->argument('method') ?: 'GET'; $add_csrf_tokens = $this->option('tokens'); $site_url = elgg_get_site_url(); $uri = substr(elgg_normalize_url($uri), strlen($site_url)); $path_key = Application::GET_PATH_KEY; $parameters = []; $query = trim((string) $this->option('query'), '?'); parse_str($query, $parameters); if ($add_csrf_tokens) { $ts = time(); $parameters['__elgg_ts'] = $ts; $parameters['__elgg_token'] = _elgg_services()->actions->generateActionToken($ts); } $request = Request::create("?{$path_key}=" . urlencode($uri), $method, $parameters); $cookie_name = _elgg_services()->config->getCookieConfig()['session']['name']; $session_id = _elgg_services()->session->getId(); $request->cookies->set($cookie_name, $session_id); $request->headers->set('Referer', elgg_normalize_url()); if ($this->option('export')) { elgg_set_viewtype('json'); $request->headers->set('X-Elgg-Ajax-API', '2'); } _elgg_services()->setValue('request', $request); Application::index(); }
function widget_manager_pagesetup() { $context = elgg_get_context(); if (elgg_is_admin_logged_in() && $context == "admin") { // move defaultwidgets menu item elgg_unregister_menu_item("page", "appearance:default_widgets"); elgg_register_menu_item('page', array('name' => "appearance:default_widgets", 'href' => "admin/appearance/default_widgets", 'text' => elgg_echo("admin:appearance:default_widgets"), 'context' => 'admin', 'parent_name' => "widgets", 'section' => "configure")); // add own menu items elgg_register_admin_menu_item('configure', 'manage', 'widgets'); if (elgg_get_plugin_setting("custom_index", "widget_manager") == "1|0") { // a special link to manage homepages that are only available if logged out elgg_register_menu_item('page', array('name' => "admin:widgets:manage:index", 'href' => elgg_get_site_url() . "?override=true", 'text' => elgg_echo("admin:widgets:manage:index"), 'context' => 'admin', 'parent_name' => "widgets", 'section' => "configure")); } } // update fixed widgets if needed if (in_array($context, array("profile", "dashboard")) && ($page_owner_guid = elgg_get_page_owner_guid())) { // only check things if you are viewing a profile or dashboard page $fixed_ts = elgg_get_plugin_setting($context . "_fixed_ts", "widget_manager"); if (empty($fixed_ts)) { // there should always be a fixed ts, so fix it now. This situation only occurs after activating widget_manager the first time. $fixed_ts = time(); elgg_set_plugin_setting($context . "_fixed_ts", $fixed_ts, "widget_manager"); } // get the ts of the profile/dashboard you are viewing $user_fixed_ts = elgg_get_plugin_user_setting($context . "_fixed_ts", $page_owner_guid, "widget_manager"); if ($user_fixed_ts < $fixed_ts) { widget_manager_update_fixed_widgets($context, $page_owner_guid); } } if (widget_manager_multi_dashboard_enabled()) { if (get_input("internal_dashboard") == "yes") { elgg_set_view_location("page/default", dirname(__FILE__) . "/views_alt/"); } } }
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 hydra_theme_init() { elgg_unextend_view('page/elements/header', 'search/header'); elgg_extend_view('page/elements/sidebar', 'search/header', 0); if (elgg_get_context() != "admin") { elgg_require_js("lorea_hydra/js"); } $bower = elgg_get_site_url() . "mod/lorea_hydra/vendors/bower_components/"; elgg_register_css("bootstrap", "{$bower}bootstrap/dist/css/bootstrap.css", 0); elgg_register_css("bootstrap-select", "{$bower}bootstrap-select/dist/css/bootstrap-select.min.css"); elgg_register_css("jasny", "{$bower}jasny-bootstrap/dist/css/jasny-bootstrap.min.css"); elgg_register_css("lorea_hydra", elgg_get_site_url() . "mod/hydra_theme/css/lorea_hydra.css", 10000); elgg_define_js("bootstrap", array("src" => "{$bower}bootstrap/dist/js/bootstrap.min.js")); //elgg_register_js("bootstrap", "{$bower}bootstrap/dist/js/bootstrap.min.js"); elgg_register_js("bootstrap-select", "{$bower}bootstrap-select/dist/js/bootstrap-select.min.js"); elgg_register_js("jasny", "{$bower}jasny-bootstrap/dist/js/jasny-bootstrap.min.js"); elgg_register_js("lorea_hydra", elgg_get_site_url() . "mod/hydra_theme/css/lorea_hydra.css", 10000); if (elgg_get_context() != "admin") { elgg_load_css("bootstrap"); elgg_load_css("bootstrap-select"); elgg_load_css("lorea_hydra"); elgg_load_css("jasny"); elgg_load_js("bootstrap"); elgg_load_js("jasny"); elgg_load_js("bootstrap-select"); elgg_load_js("lorea_hydra"); } }
function rijkshuisstijl_site_menu_prepare($hook, $type, $value, $params) { $selected = false; foreach ($value as $section) { foreach ($section as $item) { if ($item->getSelected()) { $selected = true; break 2; } } } if (!$selected) { $current_url = current_page_url(); $site_url = elgg_get_site_url(); foreach ($value as $section_name => $section) { foreach ($section as $key => $item) { // do not highlight external links if (strpos($item->getHref(), $site_url) !== 0) { continue; } // do not highlight links to main site URL if ($item->getHref() == $site_url) { continue; } if (strpos($current_url, $item->getHref()) === 0) { $value[$section_name][$key]->setSelected(true); break 2; } } } } return $return; }
/** * Handles old pg/twitterservice/ handler * * @param array $page */ function twitter_api_pagehandler_deprecated($page) { $url = elgg_get_site_url() . 'pg/twitter_api/authorize'; $msg = elgg_echo('twitter_api:deprecated_callback_url', array($url)); register_error($msg); return twitter_api_pagehandler($page); }
function elggchat_init() { elgg_extend_view('css/admin', 'elggchat/admin_css'); elgg_extend_view('css/elgg', 'elggchat/css'); $js_elggchat_sound = elgg_get_simplecache_url('js', 'elggchat/buzz.js'); elgg_register_simplecache_view('js/elggchat/buzz.js'); elgg_register_js('elggchat_sound', $js_elggchat_sound, 'head', 400); elgg_define_js('elggchat_scroll', array('src' => elgg_get_site_url() . 'mod/elggchat/views/default/js/elggchat/jquery.scrollTo.js')); if (elgg_is_logged_in()) { if (elgg_get_plugin_user_setting("enableChat", 0, "elggchat") != "no") { elgg_extend_view('page/elements/footer', 'elggchat/session_monitor'); } } elgg_register_admin_menu_item('administer', 'elggchat', 'administer_utilities'); // Extend avatar hover menu elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'elggchat_user_hover_menu'); // Register cron job $keepsessions = elgg_get_plugin_setting("keepsessions", "elggchat"); if (elgg_get_plugin_setting("keepsessions", "elggchat") != "yes") { elgg_register_plugin_hook_handler('cron', 'hourly', 'elggchat_session_cleanup'); } // Actions $action_path = elgg_get_plugins_path() . 'elggchat/actions'; elgg_register_action("elggchat/create", "{$action_path}/create.php", "logged_in"); elgg_register_action("elggchat/post_message", "{$action_path}/post_message.php", "logged_in"); elgg_register_action("elggchat/poll", "{$action_path}/poll.php", "logged_in"); elgg_register_action("elggchat/invite", "{$action_path}/invite.php", "logged_in"); elgg_register_action("elggchat/leave", "{$action_path}/leave.php", "logged_in"); elgg_register_action("elggchat/get_smiley", "{$action_path}/get_smiley.php", "logged_in"); elgg_register_action("elggchat/admin_message", "{$action_path}/admin_message.php", "admin"); elgg_register_action("elggchat/delete_session", "{$action_path}/delete_session.php", "admin"); // Logout event handler elgg_register_event_handler('logout:before', 'user', 'elggchat_logout_handler'); }
/** * Called during system init * * @return void */ function pages_tools_init() { // register DOM PDF as a library elgg_register_library("dompdf", dirname(__FILE__) . "/vendor/dompdf/dompdf/dompdf_config.inc.php"); // extend site css elgg_extend_view("css/elgg", "css/pages_tools/site"); // extend site js elgg_extend_view("js/elgg", "js/pages_tools/site"); // register JS library elgg_register_js("jquery.tree", elgg_get_site_url() . "mod/pages_tools/vendors/jstree/jquery.tree.min.js"); elgg_register_css("jquery.tree", elgg_get_site_url() . "mod/pages_tools/vendors/jstree/themes/classic/style.css"); // add widgets (overrule default pages widget, to add group support) elgg_register_widget_type("pages", elgg_echo("pages"), elgg_echo("pages:widget:description"), array("profile", "dashboard", "groups")); elgg_register_widget_type("index_pages", elgg_echo("pages"), elgg_echo("pages_tools:widgets:index_pages:description"), array("index"), true); // register plugin hooks elgg_register_plugin_hook_handler("route", "pages", "pages_tools_route_pages_hook"); elgg_register_plugin_hook_handler("register", "menu:entity", "pages_tools_entity_menu_hook"); elgg_register_plugin_hook_handler("permissions_check:comment", "object", "pages_tools_permissions_comment_hook"); elgg_register_plugin_hook_handler("widget_url", "widget_manager", "pages_tools_widget_url_hook"); elgg_register_plugin_hook_handler("cron", "daily", "pages_tools_daily_cron_hook"); // events elgg_register_event_handler('create', 'object', 'pages_tools_cache_handler'); elgg_register_event_handler('update', 'object', 'pages_tools_cache_handler'); elgg_register_event_handler('delete', 'object', 'pages_tools_cache_handler'); // register actions elgg_register_action("pages/export", dirname(__FILE__) . "/actions/export.php", "public"); elgg_register_action("pages/reorder", dirname(__FILE__) . "/actions/reorder.php"); elgg_register_action("pages_tools/update_edit_notice", dirname(__FILE__) . "/actions/update_edit_notice.php"); // overrule action elgg_register_action("pages/edit", dirname(__FILE__) . "/actions/pages/edit.php"); elgg_register_action("pages/delete", dirname(__FILE__) . "/actions/pages/delete.php"); }
/** * 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; }
/** * 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); } } }
/** * Post to a facebook users wall. * * @param unknown_type $hook * @param unknown_type $entity_type * @param unknown_type $returnvalue * @param unknown_type $params */ function facebookservice_post($hook, $entity_type, $returnvalue, $params) { $user_id = $params['userid']; $access_token = elgg_get_plugin_user_setting('access_token', $user_id, 'facebook_api'); $target = elgg_get_plugin_user_setting('uid', $user_id, 'facebook_api'); $site = elgg_get_site_entity(); if (!$params['name']) { $site_name = $site->name; } else { $site_name = $params['name']; } if (!$params['logo']) { $logo = elgg_get_site_url() . '_graphics/elgg_logo.png'; } else { $logo = $params['logo']; } if (!$params['link']) { $link = elgg_get_site_url(); } else { $link = $params['link']; } $attachment = array('access_token' => $access_token, 'message' => $params['message'], 'name' => $site_name, 'link' => $link, 'description' => $params['description'], 'picture' => $logo); if (!($access_token && $target)) { return NULL; } $facebook = facebookservice_api(); $ret_code = $facebook->api('/me/feed', 'POST', $attachment); return TRUE; }
function zelev_template_init() { // Extend system CSS with our own styles //elgg_extend_view('page/elements/elgg','page/elements/header_logo'); //elgg_extend_view('page/elements/elgg','page/elements/sidebar'); //elgg_extend_view('css/elements/elgg','css/elements/layout'); elgg_unregister_menu_item('topbar', 'elgg_logo'); $logo_url = elgg_get_site_url() . "mod/zelev/zelev_files/logo.png"; elgg_register_menu_item('topbar', array('name' => 'my_logo', 'href' => '/', 'text' => "<img src=\"{$logo_url}\" alt=\"My logo\" width=\"275\" height=\"45\" />", 'priority' => 1, 'link_class' => 'elgg-topbar-logo')); // if (!elgg_is_admin_logged_in()) { elgg_unregister_page_handler('activity'); } // Replace the default index page register_plugin_hook('index', 'system', 'zelev_index'); elgg_unregister_plugin_hook_handler('prepare', 'menu:site', 'elgg_site_menu_setup'); elgg_unregister_menu_item('site', 'file'); elgg_unregister_menu_item('site', 'bookmarks'); elgg_unregister_menu_item('site', 'reportedcontent'); elgg_unregister_menu_item('site', 'izap-contest'); elgg_unregister_menu_item('site', 'activity'); elgg_unregister_menu_item('site', 'groups'); $item_1 = new ElggMenuItem('homw', elgg_echo('Inicio'), '/'); elgg_register_menu_item('site', $item_1); $user = elgg_get_logged_in_user_entity(); if ($user) { $url = "groups/member/{$user->username}"; $item = new ElggMenuItem('groups:member', elgg_echo('groups:yours'), $url); elgg_register_menu_item('site', $item); } }
/** * initialization of plugin * * @return void */ function advanced_statistics_init() { // register page handler for nice URLs elgg_register_page_handler("advanced_statistics", "advanced_statistics_page_handler"); if (elgg_is_admin_logged_in()) { elgg_register_admin_menu_item('administer', 'users', 'advanced_statistics'); elgg_register_admin_menu_item('administer', 'groups', 'advanced_statistics'); elgg_register_admin_menu_item('administer', 'content', 'advanced_statistics'); elgg_register_admin_menu_item('administer', 'activity', 'advanced_statistics'); elgg_register_admin_menu_item('administer', 'widgets', 'advanced_statistics'); elgg_register_admin_menu_item('administer', 'system', 'advanced_statistics'); elgg_extend_view("js/admin", "js/advanced_statistics/admin"); $vendors = elgg_get_site_url() . "mod/advanced_statistics/vendors/"; elgg_register_js("excanvas", $vendors . "jqplot/excanvas.min.js"); // only for IE < 9 // jqplot base library elgg_register_js("jquery.jqplot", $vendors . "jqplot/jquery.jqplot.js"); // jqplot plugins elgg_register_js("jquery.jqplot.barRenderer", $vendors . "jqplot/plugins/jqplot.barRenderer.js"); elgg_register_js("jquery.jqplot.pieRenderer", $vendors . "jqplot/plugins/jqplot.pieRenderer.js"); elgg_register_js("jquery.jqplot.canvasAxisTickRenderer", $vendors . "jqplot/plugins/jqplot.canvasAxisTickRenderer.js"); elgg_register_js("jquery.jqplot.canvasTextRenderer", $vendors . "jqplot/plugins/jqplot.canvasTextRenderer.js"); elgg_register_js("jquery.jqplot.categoryAxisRenderer", $vendors . "jqplot/plugins/jqplot.categoryAxisRenderer.js"); elgg_register_js("jquery.jqplot.dateAxisRenderer", $vendors . "jqplot/plugins/jqplot.dateAxisRenderer.js"); elgg_register_js("jquery.jqplot.pointLabels", $vendors . "jqplot/plugins/jqplot.pointLabels.js"); elgg_register_js("jquery.jqplot.highlighter", $vendors . "jqplot/plugins/jqplot.highlighter.js"); elgg_register_simplecache_view("css/advanced_statistics/jqplot"); elgg_register_css("jquery.jqplot", elgg_get_simplecache_url("css", "advanced_statistics/jqplot")); // register admin widgets elgg_register_widget_type("advanced_statistics", elgg_echo("advanced_statistics:widgets:advanced_statistics:title"), elgg_echo("advanced_statistics:widgets:advanced_statistics:description"), array("admin"), true); elgg_register_widget_type("online_user_count", elgg_echo("advanced_statistics:widgets:online_user_count:title"), elgg_echo("advanced_statistics:widgets:online_user_count:description"), array("admin")); elgg_register_ajax_view("widgets/online_user_count/content"); } }
function au_subgroups_pagehandler($page) { // dirty check to avoid duplicate page handlers // since this should only be called from the route, groups hook if (strpos(current_page_url(), elgg_get_site_url() . 'au_subgroups') === 0) { return false; } switch ($page[0]) { case 'add': set_input('au_subgroup', true); set_input('au_subgroup_parent_guid', $page[1]); elgg_set_page_owner_guid($page[1]); echo elgg_view('resources/au_subgroups/add'); return true; break; case 'list': elgg_set_page_owner_guid($page[1]); echo elgg_view('resources/au_subgroups/list'); break; case 'delete': elgg_set_page_owner_guid($page[1]); echo elgg_view('resources/au_subgroups/delete'); break; case 'openclosed': set_input('filter', $page[1]); echo elgg_view('resources/au_subgroups/openclosed'); return true; break; } return false; }
function elgg_clean_init() { elgg_unextend_view('page/elements/header', 'search/header'); elgg_extend_view('page/elements/sidebar', 'search/header', 0); if (elgg_get_context() != "admin") { elgg_require_js("elgg_clean/js"); } elgg_register_event_handler('pagesetup', 'system', 'elgg_clean_pagesetup', 1000); elgg_register_plugin_hook_handler('head', 'page', 'elgg_clean_setup_head'); $bower = elgg_get_site_url() . "mod/elgg_clean/vendors/bower_components/"; elgg_register_css("bootstrap", "{$bower}bootstrap/dist/css/bootstrap.css", 0); elgg_register_css("open", "http://fonts.googleapis.com/css?family=Open+Sans:400,700,700italic,400italic"); elgg_register_css("passion", "http://fonts.googleapis.com/css?family=Passion+One"); elgg_register_css("elgg_clean", elgg_get_site_url() . "mod/elgg_clean/css/elgg_clean.css", 10000); elgg_register_css("font-awesome", "{$bower}fontawesome/css/font-awesome.min.css"); elgg_register_css("bootstrap-select", "{$bower}bootstrap-select/dist/css/bootstrap-select.min.css"); elgg_register_css("jasny", "{$bower}jasny-bootstrap/dist/css/jasny-bootstrap.min.css"); elgg_register_css("fuelux", "{$bower}fuelux/dist/css/fuelux.min.css"); elgg_register_css("agency", elgg_get_site_url() . "mod/elgg_clean/css/agency.css", 20000); elgg_register_css("home", elgg_get_site_url() . "mod/elgg_clean/css/home.css", 30000); elgg_register_js('respond', '{$bower}respond/src/respond.js'); elgg_define_js("bootstrap", array("src" => "{$bower}bootstrap/dist/js/bootstrap.min.js")); elgg_register_js("bootstrap-select", "{$bower}bootstrap-select/dist/js/bootstrap-select.min.js"); elgg_register_js("jasny", "{$bower}jasny-bootstrap/dist/js/jasny-bootstrap.min.js"); elgg_register_js("agency", elgg_get_site_url() . "mod/elgg_clean/js/agency.js"); elgg_register_js("cbpAnimatedHeader", elgg_get_site_url() . "mod/elgg_clean/js/cbpAnimatedHeader.js"); elgg_register_js("classie", elgg_get_site_url() . "mod/elgg_clean/js/classie.js"); elgg_register_js("contact_me", elgg_get_site_url() . "mod/elgg_clean/js/contact_me.js"); elgg_register_js("scrollspy", "{$bower}scrollspy/jquery.scrollspy.js"); elgg_register_js("parallax", "{$boder}jquery-parallax/scripts/jquery.parallax-1.13.js"); elgg_register_js("scrollto", "{$bower}jquery-parallax/scripts/jquery.scrollTo-1.4.2-min.js"); elgg_define_js('fuelux', array('src' => "{$bower}fuelux/dist/js/fuelux.min.js")); if (elgg_get_context() != "admin") { elgg_load_js('respond'); elgg_load_js("bootstrap"); elgg_load_js("jscolor"); elgg_load_js("elgg_clean"); elgg_load_js("bootstrap-select"); elgg_load_js("jasny"); elgg_load_js("agency"); elgg_load_js("parallax"); elgg_load_js("scrollto"); elgg_require_js("fuelux"); elgg_load_css("bootstrap"); elgg_load_css("open"); elgg_load_css("passion"); elgg_load_css("font-awesome"); elgg_load_css("bootstrap-select"); elgg_load_css("elgg_clean"); elgg_load_css("jasny"); elgg_load_css("fuelux"); elgg_load_css("agency"); } // non-members do not get visible links to RSS feeds if (!elgg_is_logged_in()) { elgg_unregister_plugin_hook_handler('output:before', 'layout', 'elgg_views_add_rss_link'); } elgg_register_action("elgg_clean/contact", elgg_get_plugins_path() . "elgg_clean/actions/contact.php", "public"); }
/** * Rearrange menu items * Reorganizar los elementos del menu. */ function podemos_theme19_pagesetup() { /* //DESXTENDER LA VISTA search/header DE LA DE page/elements/header //¿QUE ESTARÁ EXTENDIDA POR EL CORE? elgg_unextend_view('page/elements/header', 'search/header'); //SOLO SE EXTIENDE A LOS USUARIOS LOGUEADOS. if (elgg_is_logged_in()) { elgg_extend_view('page/elements/topbar', 'search/header', 0); } */ if (elgg_is_logged_in()) { /*CAMBIAMOS EL TEXTO (TEXT) POR UNA IMAGEN (antes elgg_echo('account'))*/ elgg_register_menu_item('topbar', array('name' => 'account', 'text' => "<img src='" . elgg_get_site_url() . "/mod/podemos_theme19/graphics/cuenta.png'/>", 'href' => "#", 'priority' => 100, 'section' => 'alt', 'link_class' => 'elgg-topbar-dropdown')); if (elgg_is_active_plugin('dashboard')) { $item = elgg_unregister_menu_item('topbar', 'dashboard'); if ($item) { $item->setText(elgg_echo('dashboard')); $item->setSection('default'); elgg_register_menu_item('site', $item); } } $item = elgg_get_menu_item('topbar', 'usersettings'); if ($item) { $item->setParentName('account'); $item->setText(elgg_echo('settings')); $item->setPriority(103); } $item = elgg_get_menu_item('topbar', 'logout'); if ($item) { $item->setParentName('account'); $item->setText(elgg_echo('logout')); $item->setPriority(104); } $item = elgg_get_menu_item('topbar', 'administration'); if ($item) { $item->setParentName('account'); $item->setText(elgg_echo('admin')); $item->setPriority(101); } if (elgg_is_active_plugin('site_notifications')) { $item = elgg_get_menu_item('topbar', 'site_notifications'); if ($item) { $item->setParentName('account'); $item->setText(elgg_echo('site_notifications:topbar')); $item->setPriority(102); } } if (elgg_is_active_plugin('reportedcontent')) { $item = elgg_unregister_menu_item('footer', 'report_this'); if ($item) { $item->setText(elgg_view_icon('report-this')); $item->setPriority(500); $item->setSection('default'); elgg_register_menu_item('extras', $item); } } } }
function community_theme_forward($h, $t, $v, $p) { // odds are we want the Community URL instead of the home page $site = elgg_get_site_url(); if ($v === $site) { return "{$site}activity"; } }
/** * Called before each test method. */ public function setUp() { $this->client = new ElggApiClient(elgg_get_site_url(), $this->apikey->public); $result = $this->client->obtainAuthToken($this->user->username, 'pass123'); if (!$result) { echo "Error in getting auth token!\n"; } }