/** * The Wire initialization */ function thewire_init() { // register the wire's JavaScript $thewire_js = elgg_get_simplecache_url('js', 'thewire'); elgg_register_js('elgg.thewire', $thewire_js, 'footer'); elgg_register_ajax_view('thewire/previous'); // add a site navigation item $item = new ElggMenuItem('thewire', elgg_echo('thewire'), 'thewire/all'); elgg_register_menu_item('site', $item); // owner block menu elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'thewire_owner_block_menu'); // remove edit and access and add thread, reply, view previous elgg_register_plugin_hook_handler('register', 'menu:entity', 'thewire_setup_entity_menu_items'); // Extend system CSS with our own styles, which are defined in the thewire/css view elgg_extend_view('css/elgg', 'thewire/css'); // Add a user's latest wire post to profile elgg_extend_view('profile/status', 'thewire/profile_status'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('thewire', 'thewire_page_handler'); // Register a URL handler for thewire posts elgg_register_plugin_hook_handler('entity:url', 'object', 'thewire_set_url'); elgg_register_widget_type('thewire', elgg_echo('thewire'), elgg_echo("thewire:widget:desc")); // Register for search elgg_register_entity_type('object', 'thewire'); // Register for notifications elgg_register_notification_event('object', 'thewire'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:thewire', 'thewire_prepare_notification'); elgg_register_plugin_hook_handler('get', 'subscriptions', 'thewire_add_original_poster'); // Register actions $action_base = elgg_get_plugins_path() . 'thewire/actions'; elgg_register_action("thewire/add", "{$action_base}/add.php"); elgg_register_action("thewire/delete", "{$action_base}/delete.php"); elgg_register_plugin_hook_handler('unit_test', 'system', 'thewire_test'); elgg_register_event_handler('upgrade', 'system', 'thewire_run_upgrades'); }
function lazy_hover_init() { elgg_extend_view("js/elgg", "js/lazy_hover/site"); elgg_register_page_handler("lazy_hover", "lazy_hover_page_handler"); // extend public pages elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'lazy_hover_public_pages'); }
/** * 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(); }
/** * * Processes view permissions from the role configuration array. This is called after the 'ready', 'system' event. * * For view extension and replacements the function simply calls the corresponding {@link elgg_extend_view()} and * {@link elgg_set_view_location()} functions, to post-register views after all plugins have been initalized. * * For suppressing views (by using the "deny" rule), it registers a specific handler for the given view, * to return an empty string instead of the view's original output. This is to conserve resources - * there are hundreds of views contributing to any elgg page. Listening for all "views", "all" hooks would * be quite a waste. * * @param string $event Equals 'ready' * @param string $event_type Equals 'system' * @param mixed $object Not in use for this specific listener */ function roles_register_views($event, $type, $object) { $role = roles_get_role(); if (elgg_instanceof($role, 'object', 'role')) { $role_perms = roles_get_role_permissions($role, 'views'); if (is_array($role_perms) && !empty($role_perms)) { foreach ($role_perms as $view => $perm_details) { switch ($perm_details['rule']) { case 'deny': elgg_register_plugin_hook_handler('view', $view, 'roles_views_permissions'); break; case 'extend': $params = $perm_details['view_extension']; $view_extension = roles_replace_dynamic_paths($params['view']); $priority = isset($params['priority']) ? $params['priority'] : 501; $viewtype = isset($params['viewtype']) ? $params['viewtype'] : ''; elgg_extend_view($view, $view_extension, $priority, $viewtype); break; case 'replace': $params = $perm_details['view_replacement']; $location = elgg_get_root_path() . roles_replace_dynamic_paths($params['location']); $viewtype = isset($params['viewtype']) ? $params['viewtype'] : ''; elgg_set_view_location($view, $location, $viewtype); break; case 'allow': default: break; } } } } }
function developers_process_settings() { if (elgg_get_plugin_setting('display_errors', 'developers') == 1) { ini_set('display_errors', 1); } else { ini_set('display_errors', 0); } if (elgg_get_plugin_setting('screen_log', 'developers') == 1) { $cache = new ElggLogCache(); elgg_set_config('log_cache', $cache); elgg_register_plugin_hook_handler('debug', 'log', array($cache, 'insertDump')); elgg_extend_view('page/elements/foot', 'developers/log'); } if (elgg_get_plugin_setting('show_strings', 'developers') == 1) { // first and last in case a plugin registers a translation in an init method elgg_register_event_handler('init', 'system', 'developers_clear_strings', 1000); elgg_register_event_handler('init', 'system', 'developers_clear_strings', 1); } if (elgg_get_plugin_setting('wrap_views', 'developers') == 1) { elgg_register_plugin_hook_handler('view', 'all', 'developers_wrap_views'); } if (elgg_get_plugin_setting('log_events', 'developers') == 1) { elgg_register_event_handler('all', 'all', 'developers_log_events', 1); elgg_register_plugin_hook_handler('all', 'all', 'developers_log_events', 1); } }
function init() { elgg_extend_view('css/elgg', 'css/elgg_recaptcha'); elgg_register_plugin_hook_handler('view', 'all', __NAMESPACE__ . '\\view_hook'); elgg_register_plugin_hook_handler('action', 'all', __NAMESPACE__ . '\\action_hook'); elgg_define_js('google_recaptcha', array('src' => 'https://www.google.com/recaptcha/api.js?render=explicit&onload=elgg_recaptcha_render&hl=' . get_language())); }
function tidypicsExt_init() { // Load system configuration global $CONFIG; // Extend View elgg_extend_view('tidypics/forms/upload', 'tidypicsExt/forms/upload'); }
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"); }
function agerestriction_init() { //put the check at the very end elgg_extend_view('register/extend', 'agerestriction/register', 1000); //block user registration if they don't check the box elgg_register_plugin_hook_handler('action', 'register', 'agerestriction_register_hook'); }
/** * Bookmark init */ function bookmarks_init() { $root = dirname(__FILE__); elgg_register_library('elgg:bookmarks', "{$root}/lib/bookmarks.php"); // actions $action_path = "{$root}/actions/bookmarks"; elgg_register_action('bookmarks/save', "{$action_path}/save.php"); elgg_register_action('bookmarks/delete', "{$action_path}/delete.php"); elgg_register_action('bookmarks/share', "{$action_path}/share.php"); // menus elgg_register_menu_item('site', array('name' => 'bookmarks', 'text' => elgg_echo('bookmarks'), 'href' => 'bookmarks/all')); elgg_register_plugin_hook_handler('register', 'menu:page', 'bookmarks_page_menu'); elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'bookmarks_owner_block_menu'); elgg_register_page_handler('bookmarks', 'bookmarks_page_handler'); elgg_extend_view('css/elgg', 'bookmarks/css'); elgg_extend_view('js/elgg', 'bookmarks/js'); elgg_register_widget_type('bookmarks', elgg_echo('bookmarks'), elgg_echo('bookmarks:widget:description')); if (elgg_is_logged_in()) { $user_guid = elgg_get_logged_in_user_guid(); $address = urlencode(current_page_url()); elgg_register_menu_item('extras', array('name' => 'bookmark', 'text' => elgg_view_icon('push-pin-alt'), 'href' => "bookmarks/add/{$user_guid}?address={$address}", 'title' => elgg_echo('bookmarks:this'), 'rel' => 'nofollow')); } // Register granular notification for this type register_notification_object('object', 'bookmarks', elgg_echo('bookmarks:new')); // Listen to notification events and supply a more useful message elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'bookmarks_notify_message'); // Register a URL handler for bookmarks elgg_register_entity_url_handler('object', 'bookmarks', 'bookmark_url'); // Register entity type for search elgg_register_entity_type('object', 'bookmarks'); // Groups add_group_tool_option('bookmarks', elgg_echo('bookmarks:enablebookmarks'), true); elgg_extend_view('groups/tool_latest', 'bookmarks/group_module'); }
/** * Initialize the theme * * @return void */ function theme_eersel_init() { elgg_register_css('font-awesome', 'mod/theme_eersel/vendors/font-awesome-4.3.0/css/font-awesome.min.css'); elgg_load_css('font-awesome'); // extend views elgg_extend_view("js/elgg", "js/theme_eersel"); elgg_extend_view("css/elgg", "css/theme_eersel"); elgg_extend_view("css/elgg", "css/theme_eersel_images"); elgg_extend_view("page/layouts/widgets", "theme_eersel/widgets_fix"); elgg_extend_view('icon/default', 'theme_eersel/group/icon', 400); elgg_unextend_view("page/elements/header", "search/header"); elgg_unextend_view("page/elements/owner_block/extend", "group_tools/owner_block"); // page handlers elgg_register_page_handler("theme_eersel", "theme_eersel_page_handler"); elgg_register_page_handler("profile", "theme_eersel_profile_page_handler"); elgg_register_js('jquery.flexslider', 'mod/theme_eersel/vendors/jquery.flexslider/jquery.flexslider-min.js'); elgg_load_js('jquery.flexslider'); // register widgets elgg_register_widget_type("profile_owner_block", elgg_echo("theme_eersel:widgets:profile_owner_block:title"), elgg_echo("theme_eersel:widgets:profile_owner_block:description"), "profile"); elgg_register_widget_type("index_photos", elgg_echo("theme_eersel:widgets:index_photos:title"), elgg_echo("theme_eersel:widgets:index_photos:description"), "index"); elgg_register_widget_type("index_sidebar", elgg_echo("theme_eersel:widgets:index_sidebar:title"), elgg_echo("theme_eersel:widgets:index_sidebar:description"), "index"); // register plugin hooks elgg_register_plugin_hook_handler("register", "menu:topbar", "theme_eersel_register_topbar_menu_handler"); elgg_register_plugin_hook_handler("prepare", "menu:owner_block", "theme_eersel_prepare_owner_block_menu_handler"); elgg_register_plugin_hook_handler('route', 'groups', 'theme_eersel_route_groups_handler'); // register events elgg_register_event_handler('pagesetup', 'system', 'theme_eersel_pagesetup'); // register admin menu item elgg_register_admin_menu_item("configure", "theme_eersel", "appearance"); // register actions elgg_register_action("theme_eersel/slider_upload", dirname(__FILE__) . "/actions/slider_upload.php", "admin"); elgg_register_action("theme_eersel/links", dirname(__FILE__) . "/actions/links.php", "admin"); }
/** * Subgroups plugin initialization functions. */ function subgroups_init() { // register a library of helper functions elgg_register_library('elgg:subgroups', elgg_get_plugins_path() . 'subgroups/lib/subgroups.php'); // override groups library elgg_register_library('elgg:groups', elgg_get_plugins_path() . 'subgroups/lib/groups.php'); // Register actions $actions_path = elgg_get_plugins_path() . 'subgroups/actions/subgroups'; elgg_register_action("subgroups/add", $actions_path . "/add.php"); elgg_register_action("subgroups/remove", $actions_path . "/remove.php"); // Register page handler elgg_register_page_handler('subgroups', 'subgroups_page_handler'); // Register pagesetup event handler elgg_register_event_handler('pagesetup', 'system', 'subgroups_setup_sidebar_menus'); // Register unsetter container_guid handler elgg_register_event_handler('update', 'group', 'subgroups_unset_group_container'); // Register an unrelate link to entity menu (max priority to run the last) elgg_register_plugin_hook_handler('register', 'menu:entity', 'subgroups_menu_setup', 9999); // Extend group fields elgg_register_plugin_hook_handler('profile:fields', 'group', 'subgroups_add_container_field'); // Access permissions elgg_register_plugin_hook_handler('access:collections:write', 'all', 'subgroups_read_acl_plugin_hook'); // Extending views elgg_extend_view('groups/sidebar/members', 'groups/sidebar/subgroups', 300); //TODO elgg_extend_view('groups/forum_latest', 'subgroups/frontpage'); // Extending CSS elgg_extend_view('css/elements/components', 'groups/css/elements/components'); elgg_register_ajax_view('subgroups/groups_i_can_edit'); // Add group tool add_group_tool_option('subgroups', elgg_echo('subgroups:in_frontpage'), false); elgg_extend_view('groups/tool_latest', 'subgroups/group_module'); }
/** * The Wire initialization */ function thewire_init() { // register the wire's JavaScript $thewire_js = elgg_get_simplecache_url('thewire.js'); elgg_register_js('elgg.thewire', $thewire_js, 'footer'); elgg_register_ajax_view('thewire/previous'); // add a site navigation item $item = new ElggMenuItem('thewire', elgg_echo('thewire'), 'thewire/all'); elgg_register_menu_item('site', $item); // owner block menu elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'thewire_owner_block_menu'); // remove edit and access and add thread, reply, view previous elgg_register_plugin_hook_handler('register', 'menu:entity', 'thewire_setup_entity_menu_items'); // Extend system CSS with our own styles, which are defined in the thewire/css view elgg_extend_view('elgg.css', 'thewire/css'); // Add a user's latest wire post to profile elgg_extend_view('profile/status', 'thewire/profile_status'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('thewire', 'thewire_page_handler'); // Register a URL handler for thewire posts elgg_register_plugin_hook_handler('entity:url', 'object', 'thewire_set_url'); // Register for search elgg_register_entity_type('object', 'thewire'); // Register for notifications elgg_register_notification_event('object', 'thewire'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:thewire', 'thewire_prepare_notification'); elgg_register_plugin_hook_handler('get', 'subscriptions', 'thewire_add_original_poster'); // allow to be liked elgg_register_plugin_hook_handler('likes:is_likable', 'object:thewire', 'Elgg\\Values::getTrue'); elgg_register_plugin_hook_handler('unit_test', 'system', 'thewire_test'); }
/** * Initialize the plugin. */ function tour_init() { $js_lib = elgg_get_plugin_setting('js_library', 'tour'); if ($js_lib == 'joyride') { elgg_register_css('joyride', '/mod/tour/vendors/joyride/joyride-2.1.css'); elgg_load_css('joyride'); elgg_define_js('joyride', array('src' => '/mod/tour/vendors/joyride/jquery.joyride-2.1.js', 'exports' => 'joyride')); } else { elgg_register_css('hopscotch', '/mod/tour/vendors/hopscotch/css/hopscotch.min.css'); elgg_load_css('hopscotch'); elgg_define_js('hopscotch', array('src' => '/mod/tour/vendors/hopscotch/hopscotch.min.js', 'exports' => 'hopscotch')); } elgg_require_js('elgg/tour/display'); //elgg_require_js('elgg/tour/edit'); elgg_register_ajax_view('ajax/tour_stop/save'); elgg_extend_view('page/elements/footer', 'tour/outline'); elgg_extend_view('css/elgg', 'css/tour'); elgg_extend_view('css/admin', 'css/tour_admin'); elgg_register_action('tour_page/save', __DIR__ . '/actions/tour_page/save.php', 'admin'); elgg_register_action('tour_page/reorder', __DIR__ . '/actions/tour_page/reorder.php', 'admin'); elgg_register_action('tour_page/delete', __DIR__ . '/actions/tour_page/delete.php', 'admin'); elgg_register_action('tour_stop/save', __DIR__ . '/actions/tour_stop/save.php', 'admin'); elgg_register_action('tour_stop/delete', __DIR__ . '/actions/tour_stop/delete.php', 'admin'); elgg_register_page_handler('tour', 'tour_page_handler'); elgg_register_page_handler('tour_stop', 'tour_page_handler'); // For convenience elgg_register_admin_menu_item('administer', 'tour', 'administer_utilities'); elgg_register_menu_item('topbar', array('name' => 'tour', 'href' => '', 'text' => elgg_echo('tour:start'), 'id' => 'tour-start', 'section' => 'alt', 'data-library' => $js_lib)); elgg_register_plugin_hook_handler('register', 'menu:entity', array('Tour\\Page\\EntityMenu', 'setUp')); elgg_register_plugin_hook_handler('register', 'menu:entity', array('Tour\\Stop\\EntityMenu', 'setUp')); elgg_register_viewtype('json'); }
function messages_init() { // register a library of helper functions elgg_register_library('elgg:messages', elgg_get_plugins_path() . 'messages/lib/messages.php'); // add page menu items if (elgg_is_logged_in()) { elgg_register_menu_item('page', array('name' => 'messages:inbox', 'text' => elgg_echo('messages:inbox'), 'href' => "messages/inbox/" . elgg_get_logged_in_user_entity()->username, 'context' => 'messages')); elgg_register_menu_item('page', array('name' => 'messages:sentmessages', 'text' => elgg_echo('messages:sentmessages'), 'href' => "messages/sent/" . elgg_get_logged_in_user_entity()->username, 'context' => 'messages')); } elgg_register_event_handler('pagesetup', 'system', 'messages_notifier'); // Extend system CSS with our own styles, which are defined in the messages/css view elgg_extend_view('css/elgg', 'messages/css'); elgg_extend_view('js/elgg', 'messages/js'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('messages', 'messages_page_handler'); // Register a URL handler elgg_register_entity_url_handler('object', 'messages', 'messages_url'); // Extend avatar hover menu elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'messages_user_hover_menu'); // Register a notification handler for site messages register_notification_handler("site", "messages_site_notify_handler"); elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'messages_notification_msg'); register_notification_object('object', 'messages', elgg_echo('messages:new')); // ecml elgg_register_plugin_hook_handler('get_views', 'ecml', 'messages_ecml_views_hook'); // permission overrides elgg_register_plugin_hook_handler('permissions_check:metadata', 'object', 'messages_can_edit_metadata'); elgg_register_plugin_hook_handler('permissions_check', 'object', 'messages_can_edit'); elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'messages_can_edit_container'); // Register actions $action_path = elgg_get_plugins_path() . 'messages/actions/messages'; elgg_register_action("messages/send", "{$action_path}/send.php"); elgg_register_action("messages/delete", "{$action_path}/delete.php"); elgg_register_action("messages/process", "{$action_path}/process.php"); }
function widget_favorites_init() { elgg_register_widget_type("favorites", elgg_echo("widgets:favorites:title"), elgg_echo("widgets:favorites:description"), "dashboard"); elgg_register_event_handler("pagesetup", "system", "widget_favorites_pagesetup"); elgg_register_action("favorite/toggle", dirname(__FILE__) . "/actions/toggle.php"); elgg_extend_view("js/elgg", "widgets/favorites/js"); }
function messages_init() { // register a library of helper functions elgg_register_library('elgg:messages', __DIR__ . '/lib/messages.php'); // add page menu items if (elgg_is_logged_in()) { elgg_register_menu_item('page', array('name' => 'messages:inbox', 'text' => elgg_echo('messages:inbox'), 'href' => "messages/inbox/" . elgg_get_logged_in_user_entity()->username, 'context' => 'messages')); elgg_register_menu_item('page', array('name' => 'messages:sentmessages', 'text' => elgg_echo('messages:sentmessages'), 'href' => "messages/sent/" . elgg_get_logged_in_user_entity()->username, 'context' => 'messages')); } // Extend system CSS with our own styles, which are defined in the messages/css view elgg_extend_view('elgg.css', 'messages/css'); elgg_extend_view('elgg.js', 'messages/js'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('messages', 'messages_page_handler'); // Register a URL handler elgg_register_plugin_hook_handler('entity:url', 'object', 'messages_set_url'); // Extend avatar hover menu elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'messages_user_hover_menu'); // delete messages sent by a user when user is deleted elgg_register_event_handler('delete', 'user', 'messages_purge'); // ecml elgg_register_plugin_hook_handler('get_views', 'ecml', 'messages_ecml_views_hook'); // permission overrides elgg_register_plugin_hook_handler('permissions_check:metadata', 'object', 'messages_can_edit_metadata'); elgg_register_plugin_hook_handler('permissions_check', 'object', 'messages_can_edit'); elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'messages_can_edit_container'); // Register actions $action_path = __DIR__ . '/actions/messages'; elgg_register_action("messages/send", "{$action_path}/send.php"); elgg_register_action("messages/delete", "{$action_path}/delete.php"); elgg_register_action("messages/process", "{$action_path}/process.php"); // Topbar menu. We assume this menu will render *after* a message is rendered. If a refactor/plugin // causes it to render first, the unread count notification will not update until the next page. elgg_register_plugin_hook_handler('register', 'menu:topbar', 'messages_register_topbar'); }
function friend_request_init() { // extend css elgg_extend_view("css/elgg", "css/friend_request/site"); // Page handlers // unregister friendsof elgg_unregister_page_handler("friendsof"); //This will let users view their friend requests elgg_register_page_handler('friend_request', 'friend_request_page_handler'); // Events // unregister default elgg friend handler elgg_unregister_event_handler("create", "friend", "relationship_notification_hook"); // Handle our add action event elgg_register_event_handler("create", "friendrequest", "friend_request_event_create_friendrequest"); // Plugin hooks elgg_register_plugin_hook_handler("register", "menu:user_hover", "friend_request_user_menu_handler"); elgg_register_plugin_hook_handler("register", "menu:entity", "friend_request_entity_menu_handler"); // Actions // This overwrites the original friend requesting stuff. elgg_register_action("friends/add", dirname(__FILE__) . "/actions/friends/add.php"); // We need to override the friend remove action to remove the relationship we created elgg_register_action("friends/remove", dirname(__FILE__) . "/actions/friends/removefriend.php"); // friend request actions elgg_register_action("friend_request/approve", dirname(__FILE__) . "/actions/approve.php"); elgg_register_action("friend_request/decline", dirname(__FILE__) . "/actions/decline.php"); elgg_register_action("friend_request/revoke", dirname(__FILE__) . "/actions/revoke.php"); }
/** * Initialise search helper functions. * */ function search_init() { global $CONFIG; require_once 'search_hooks.php'; // page handler for search actions and results register_page_handler('search', 'search_page_handler'); // register some default search hooks register_plugin_hook('search', 'object', 'search_objects_hook'); register_plugin_hook('search', 'user', 'search_users_hook'); // @todo pull this out into groups register_plugin_hook('search', 'group', 'search_groups_hook'); // tags and comments are a bit different. // register a search types and a hooks for them. register_plugin_hook('search_types', 'get_types', 'search_custom_types_tags_hook'); register_plugin_hook('search', 'tags', 'search_tags_hook'); register_plugin_hook('search_types', 'get_types', 'search_custom_types_comments_hook'); register_plugin_hook('search', 'comments', 'search_comments_hook'); // get server min and max allowed chars for ft searching $CONFIG->search_info = array(); // can't use get_data() here because some servers don't have these globals set, // which throws a db exception. $r = mysql_query('SELECT @@ft_min_word_len as min, @@ft_max_word_len as max'); if ($r && ($word_lens = mysql_fetch_assoc($r))) { $CONFIG->search_info['min_chars'] = $word_lens['min']; $CONFIG->search_info['max_chars'] = $word_lens['max']; } else { // uhhh these are good numbers. $CONFIG->search_info['min_chars'] = 4; $CONFIG->search_info['max_chars'] = 90; } // add in CSS for search elements elgg_extend_view('css', 'search/css'); }
/** * Bookmark init */ function bookmarks_init() { $root = dirname(__FILE__); elgg_register_library('elgg:bookmarks', "{$root}/lib/bookmarks.php"); // actions $action_path = "{$root}/actions/bookmarks"; elgg_register_action('bookmarks/save', "{$action_path}/save.php"); elgg_register_action('bookmarks/delete', "{$action_path}/delete.php"); elgg_register_action('bookmarks/share', "{$action_path}/share.php"); // menus elgg_register_menu_item('site', array('name' => 'bookmarks', 'text' => elgg_echo('bookmarks'), 'href' => 'bookmarks/all')); elgg_register_plugin_hook_handler('register', 'menu:page', 'bookmarks_page_menu'); elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'bookmarks_owner_block_menu'); elgg_register_page_handler('bookmarks', 'bookmarks_page_handler'); elgg_extend_view('elgg.css', 'bookmarks/css'); elgg_extend_view('elgg.js', 'bookmarks/js'); elgg_register_widget_type('bookmarks', elgg_echo('bookmarks'), elgg_echo('bookmarks:widget:description')); if (elgg_is_logged_in()) { $user_guid = elgg_get_logged_in_user_guid(); $address = urlencode(current_page_url()); elgg_register_menu_item('extras', array('name' => 'bookmark', 'text' => elgg_view_icon('push-pin-alt'), 'href' => "bookmarks/add/{$user_guid}?address={$address}", 'title' => elgg_echo('bookmarks:this'), 'rel' => 'nofollow')); } // Register for notifications elgg_register_notification_event('object', 'bookmarks', array('create')); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:bookmarks', 'bookmarks_prepare_notification'); // Register bookmarks view for ecml parsing elgg_register_plugin_hook_handler('get_views', 'ecml', 'bookmarks_ecml_views_hook'); // Register a URL handler for bookmarks elgg_register_plugin_hook_handler('entity:url', 'object', 'bookmark_set_url'); // Register entity type for search elgg_register_entity_type('object', 'bookmarks'); // Groups add_group_tool_option('bookmarks', elgg_echo('bookmarks:enablebookmarks'), true); elgg_extend_view('groups/tool_latest', 'bookmarks/group_module'); }
function twitter_api_init() { // require libraries $base = elgg_get_plugins_path() . 'twitter_api'; elgg_register_class('TwitterOAuth', "{$base}/vendors/twitteroauth/twitterOAuth.php"); elgg_register_library('twitter_api', "{$base}/lib/twitter_api.php"); elgg_load_library('twitter_api'); // extend site views //elgg_extend_view('metatags', 'twitter_api/metatags'); elgg_extend_view('css/elgg', 'twitter_api/css'); elgg_extend_view('css/admin', 'twitter_api/css'); // sign on with twitter if (twitter_api_allow_sign_on_with_twitter()) { elgg_extend_view('login/extend', 'twitter_api/login'); } // register page handler elgg_register_page_handler('twitter_api', 'twitter_api_pagehandler'); // backward compatibility elgg_register_page_handler('twitterservice', 'twitter_api_pagehandler_deprecated'); // register Walled Garden public pages elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'twitter_api_public_pages'); // push status messages to twitter elgg_register_plugin_hook_handler('status', 'user', 'twitter_api_tweet'); $actions = dirname(__FILE__) . '/actions/twitter_api'; elgg_register_action('twitter_api/interstitial_settings', "{$actions}/interstitial_settings.php", 'logged_in'); }
function questions_init() { elgg_register_library("elgg:questions", dirname(__FILE__) . "/lib/questions.php"); add_subtype("object", 'question', 'ElggQuestion'); update_subtype("object", 'question', 'ElggQuestion'); add_subtype("object", 'answer', 'ElggAnswer'); update_subtype("object", 'answer', 'ElggAnswer'); elgg_extend_view("css/elgg", "questions/css"); elgg_extend_view("js/elgg", "questions/js"); elgg_register_menu_item("site", array("name" => 'questions', "text" => elgg_echo('questions'), "href" => "/questions/all")); elgg_register_entity_type("object", 'questions'); elgg_register_widget_type('questions', elgg_echo("widget:questions:title"), elgg_echo("widget:questions:description")); $actions_base = dirname(__FILE__) . '/actions/object/question'; elgg_register_action("object/question/save", "{$actions_base}/save.php"); elgg_register_action("questions/delete", "{$actions_base}/delete.php"); $actions_base = dirname(__FILE__) . '/actions/object/answer'; elgg_register_action("object/answer/save", "{$actions_base}/save.php"); elgg_register_entity_url_handler('object', 'question', 'questions_url_handler'); $plugin_dir = dirname(__FILE__); elgg_register_entity_url_handler('object', 'answer', 'answers_url'); elgg_register_page_handler('questions', 'questions_page_handler'); elgg_register_page_handler('answers', 'answers_page_handler'); $actions_base = "{$plugin_dir}/actions/object/answer"; elgg_register_action('object/answer/add', "{$actions_base}/save.php"); elgg_register_action('object/answer/edit', "{$actions_base}/save.php"); elgg_register_action('answers/delete', "{$actions_base}/delete.php"); elgg_register_plugin_hook_handler("register", "menu:owner_block", 'questions_owner_block_menu_handler'); elgg_register_plugin_hook_handler("register", "menu:user_hover", 'questions_user_hover_menu_handler'); elgg_register_plugin_hook_handler("register", 'menu:entity', 'questions_entity_menu_handler'); elgg_register_plugin_hook_handler("notify:entity:message", "object", 'questions_notify_message_handler'); add_group_tool_option('questions', elgg_echo("questions:enable"), true); elgg_extend_view("groups/tool_latest", "questions/group_module"); elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'questions_container_permissions_check'); }
function twitter_bootswatch_init() { $bootswatch_style = elgg_get_plugin_setting('bootswatch_style', 'twitter_bootswatch'); switch ($bootswatch_style) { case 'amelia': case 'cerulean': case 'cosmo': case 'cyborg': case 'flatty': case 'journal': case 'readable': case 'simplex': case 'slate': case 'spacelab': case 'spruce': case 'superhero': case 'united': break; default: $bootswatch_style = 'cyborg'; } // Unextend the default bootstrap override css elgg_unextend_view('css/elgg', 'twitter_bootstrap/css'); // Extend system CSS with our own styles elgg_extend_view('css/elgg', 'twitter_bootswatch/css'); // united bootstrap $bootstrap_css = 'mod/twitter_bootswatch/vendors/bootstrap-' . $bootswatch_style . '.min.css'; elgg_register_css('twitter_bootswatch_css', $bootstrap_css, 5); //unload default bootstrap css and load new one elgg_unregister_css('bootstrap_css'); if (get_context() != 'admin') { elgg_load_css('twitter_bootswatch_css'); } }
function uservalidationbyemail_init() { require_once dirname(__FILE__) . '/lib/functions.php'; // Register page handler to validate users // This doesn't need to be an action because security is handled by the validation codes. elgg_register_page_handler('uservalidationbyemail', 'uservalidationbyemail_page_handler'); // mark users as unvalidated and disable when they register elgg_register_plugin_hook_handler('register', 'user', 'uservalidationbyemail_disable_new_user'); // forward to uservalidationbyemail/emailsent page after register elgg_register_plugin_hook_handler('forward', 'system', 'uservalidationbyemail_after_registration_url'); // canEdit override to allow not logged in code to disable a user elgg_register_plugin_hook_handler('permissions_check', 'user', 'uservalidationbyemail_allow_new_user_can_edit'); // prevent users from logging in if they aren't validated register_pam_handler('uservalidationbyemail_check_auth_attempt', "required"); // when requesting a new password elgg_register_plugin_hook_handler('action', 'user/requestnewpassword', 'uservalidationbyemail_check_request_password'); // prevent the engine from logging in users via login() elgg_register_event_handler('login:before', 'user', 'uservalidationbyemail_check_manual_login'); // make admin users always validated elgg_register_event_handler('make_admin', 'user', 'uservalidationbyemail_validate_new_admin_user'); // register Walled Garden public pages elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'uservalidationbyemail_public_pages'); // admin interface to manually validate users elgg_register_admin_menu_item('administer', 'unvalidated', 'users'); elgg_extend_view('admin.css', 'uservalidationbyemail/css'); elgg_extend_view('elgg.js', 'uservalidationbyemail/js'); $action_path = dirname(__FILE__) . '/actions'; elgg_register_action('uservalidationbyemail/validate', "{$action_path}/validate.php", 'admin'); elgg_register_action('uservalidationbyemail/resend_validation', "{$action_path}/resend_validation.php", 'admin'); elgg_register_action('uservalidationbyemail/delete', "{$action_path}/delete.php", 'admin'); elgg_register_action('uservalidationbyemail/bulk_action', "{$action_path}/bulk_action.php", 'admin'); }
function zhsocial_init() { elgg_register_simplecache_view("js/zhsocial/login"); $login_js = elgg_get_simplecache_url("js", "zhsocial/login"); elgg_register_js("zhsocial.login", $login_js); elgg_extend_view('forms/login', 'zhsocial/login', 501); }
function init() { if (is_on_probation()) { // don't allow sending messages elgg_unregister_action('messages/send'); elgg_register_plugin_hook_handler('register', 'menu:topbar', __NAMESPACE__ . '\\hook_register_menu_topbar', 999); // don't allow group creation elgg_unregister_action('groups/edit'); elgg_register_plugin_hook_handler('register', 'menu:title', __NAMESPACE__ . '\\hook_register_title_menu', 999); // mark content as probationary and make it private. if (elgg_get_plugin_setting(QUARANTINE_CONTENT, PLUGIN_ID)) { elgg_register_event_handler('create', 'object', __NAMESPACE__ . '\\event_create_object'); elgg_register_event_handler('update', 'object', __NAMESPACE__ . '\\event_update_object'); } } if (elgg_is_admin_logged_in()) { elgg_register_admin_menu_item('administer', 'probation', 'users'); // Add approval links to entity menus elgg_register_plugin_hook_handler('prepare', 'menu:entity', __NAMESPACE__ . '\\hook_prepare_entity_menu', 999); } // show message above user profile elgg_extend_view('profile/details', 'probation/profile_details_400', 400); elgg_register_action('probation/approve_content', __DIR__ . '/actions/probation/approve_content.php', 'admin'); elgg_register_action('probation/approve_user', __DIR__ . '/actions/probation/approve_user.php', 'admin'); // hiding "Send message" or adding "Remove probation" elgg_register_plugin_hook_handler('register', 'menu:user_hover', __NAMESPACE__ . '\\hook_register_hover_menu', 999); // put all newly-enabled users on probation elgg_register_event_handler('enable', 'user', __NAMESPACE__ . '\\event_enable_user'); // we don't enqueue notification events for probationary content elgg_register_plugin_hook_handler('enqueue', 'notification', __NAMESPACE__ . '\\hook_enqueue_notification'); // nor do we allow notify_user() for comments/replies elgg_register_plugin_hook_handler('email', 'system', __NAMESPACE__ . '\\hook_email_system', 1); elgg_register_event_handler('shutdown', 'system', __NAMESPACE__ . '\\event_shutdown'); }
/** * Elgg twitter widget * This plugin allows users to pull in their twitter feed to display on their profile * * @package ElggTwitter * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 * @author Curverider Ltd <*****@*****.**> * @copyright Curverider Ltd 2008-2010 * @link http://elgg.com/ */ function twitter_init() { //extend css if style is required elgg_extend_view('css', 'twitter/css'); //add a widget add_widget_type('twitter', "Twitter", "This is your twitter feed"); }
function rename_friends_init() { // Load the language file register_translations(elgg_get_plugins_path() . "rename_friends/languages/"); // Extend system CSS with our own styles elgg_extend_view('css/elgg', 'rename_friends/css'); }
/** * Initialize the plugin */ function reportedcontent_init() { // Register a page handler, so we can have nice URLs elgg_register_page_handler('reportedcontent', 'reportedcontent_page_handler'); // Extend CSS elgg_extend_view('css/elgg', 'reportedcontent/css'); elgg_extend_view('css/admin', 'reportedcontent/admin_css'); // Extend footer with report content link if (elgg_is_logged_in()) { $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, 'section' => 'default')); } elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'reportedcontent_user_hover_menu'); // Add admin menu item // @todo Might want to move this to a 'feedback' section. something other than utils elgg_register_admin_menu_item('administer', 'reportedcontent', 'administer_utilities'); elgg_register_widget_type('reportedcontent', elgg_echo('reportedcontent'), elgg_echo('reportedcontent:widget:description'), array('admin')); // Register actions $action_path = elgg_get_plugins_path() . "reportedcontent/actions/reportedcontent"; elgg_register_action('reportedcontent/add', "{$action_path}/add.php"); elgg_register_action('reportedcontent/delete', "{$action_path}/delete.php", 'admin'); elgg_register_action('reportedcontent/archive', "{$action_path}/archive.php", 'admin'); }