/** * Init blog plugin. */ function blog_init() { elgg_register_library('elgg:blog', __DIR__ . '/lib/blog.php'); // add a site navigation item elgg_register_menu_item('site', ['name' => 'blog', 'text' => elgg_echo('blog:blogs'), 'href' => 'blog/all']); // add to the main css elgg_extend_view('elgg.css', 'blog/css'); // routing of urls elgg_register_page_handler('blog', 'blog_page_handler'); // override the default url to view a blog object elgg_register_plugin_hook_handler('entity:url', 'object', 'blog_set_url'); // notifications elgg_register_notification_event('object', 'blog', array('publish')); elgg_register_plugin_hook_handler('prepare', 'notification:publish:object:blog', 'blog_prepare_notification'); // add blog link to owner block elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'blog_owner_block_menu'); // Register for search. elgg_register_entity_type('object', 'blog'); // Add group option add_group_tool_option('blog', elgg_echo('blog:enableblog'), true); elgg_extend_view('groups/tool_latest', 'blog/group_module'); // entity menu elgg_register_plugin_hook_handler('register', 'menu:entity', 'blog_entity_menu_setup'); // archive menu elgg_register_plugin_hook_handler('register', 'menu:blog_archive', 'blog_archive_menu_setup'); // ecml elgg_register_plugin_hook_handler('get_views', 'ecml', 'blog_ecml_views_hook'); // allow to be liked elgg_register_plugin_hook_handler('likes:is_likable', 'object:blog', 'Elgg\\Values::getTrue'); }
/** * 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'); }
/** * 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'); }
/** * 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 simplekaltura_init() { $plugin_root = dirname(__FILE__); elgg_register_library('simplekaltura', "{$plugin_root}/lib/simplekaltura_lib.php"); elgg_register_library('KalturaClient', "{$plugin_root}/vendors/kaltura_client/KalturaClient.php"); elgg_load_library('simplekaltura'); // helper libs $libs = array('swfobject', 'html5', 'utility', 'thumbs'); foreach ($libs as $lib) { $url = elgg_get_simplecache_url('js', "simplekaltura/{$lib}"); elgg_register_js("simplekaltura:{$lib}", $url); } // Register SKUploader elgg_register_external_view('js/simplekaltura/SKUploader.js', TRUE); // Include html5 js library elgg_load_js('simplekaltura:html5'); elgg_load_js('simplekaltura:utility'); elgg_extend_view('css/elgg', 'simplekaltura/css'); // If plugin is properly configured if (simplekaltura_is_configured()) { // Add to main menu $item = new ElggMenuItem('simplekaltura', elgg_get_plugin_setting('kaltura_entity_title', 'simplekaltura'), 'videos'); elgg_register_menu_item('site', $item); // Register page handler elgg_register_page_handler('videos', 'simplekaltura_page_handler'); } else { elgg_add_admin_notice('simpkaltura_not_configured', elgg_echo('simplekaltura:error:pluginnotconfigured')); } // add the group pages tool option add_group_tool_option('simplekaltura', elgg_echo('groups:enablesimplekaltura'), TRUE); // Profile block hook elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'simplekaltura_owner_block_menu'); // Modify entity menu for addional video items elgg_register_plugin_hook_handler('register', 'menu:entity', 'simplekaltura_setup_entity_menu'); // notifications elgg_register_notification_event('object', 'simplekaltura_video', array('create')); elgg_register_plugin_hook_handler('prepare', 'notification:publish:object:simplekaltura_video', 'simplekaltura_prepare_notification'); // actions $actions_root = "{$plugin_root}/actions/simplekaltura"; elgg_register_action('simplekaltura/save', "{$actions_root}/save.php"); elgg_register_action('simplekaltura/update', "{$actions_root}/update.php"); elgg_register_action('simplekaltura/get_embed', "{$actions_root}/get_embed.php"); elgg_register_action('simplekaltura/featured', "{$actions_root}/featured.php", 'admin'); elgg_register_action('videos/delete', "{$actions_root}/delete.php"); elgg_register_action('simplekaltura/migrate', "{$actions_root}/migrate.php", 'admin'); // entity url and icon handlers elgg_register_plugin_hook_handler('entity:url', 'object', 'simplekaltura_url_handler'); elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'simplekaltura_icon_url_override'); // Register type elgg_register_entity_type('object', 'simplekaltura_video'); // register CRON hook to poll video plays/duration/etc.. elgg_register_plugin_hook_handler('cron', 'fifteenmin', 'simplekaltura_bulk_update'); // Most Played Sidebar elgg_extend_view('simplekaltura/sidebar', 'simplekaltura/featured'); elgg_extend_view('simplekaltura/sidebar', 'simplekaltura/most_played'); // Whitelist ajax views elgg_register_ajax_view('simplekaltura/popup'); return TRUE; }
function polls_init() { elgg_register_library('elgg:polls', elgg_get_plugins_path() . 'polls/models/model.php'); // Set up menu for logged in users if (elgg_is_logged_in()) { $item = new ElggMenuItem('polls', elgg_echo('polls'), 'polls/owner/' . elgg_get_logged_in_user_entity()->username); } else { $item = new ElggMenuItem('polls', elgg_echo('poll'), 'polls/all'); } elgg_register_menu_item('site', $item); // Extend system CSS with our own styles, which are defined in the polls/css view elgg_extend_view('css/elgg', 'polls/css'); // Extend hover-over menu elgg_extend_view('profile/menu/links', 'polls/menu'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('polls', 'polls_page_handler'); // Register a URL handler for poll posts elgg_register_entity_url_handler('object', 'poll', 'polls_url'); // notifications $elgg_version = explode('.', get_version(true)); if ($elgg_version[1] > 8) { $send_notification = elgg_get_plugin_setting('send_notification', 'polls'); if (!$send_notification || $send_notification != 'no') { elgg_register_notification_event('object', 'poll'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:poll', 'polls_prepare_notification'); } } // add link to owner block elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'polls_owner_block_menu'); elgg_register_plugin_hook_handler('widget_url', 'widget_manager', 'polls_widget_url_handler'); // Register entity type elgg_register_entity_type('object', 'poll'); // register the JavaScript $js = elgg_get_simplecache_url('js', 'polls/js'); elgg_register_simplecache_view('js/polls/js'); elgg_register_js('elgg.polls', $js); // add group widget $group_polls = elgg_get_plugin_setting('group_polls', 'polls'); if (!$group_polls || $group_polls != 'no') { elgg_extend_view('groups/tool_latest', 'polls/group_module'); } if (!$group_polls || $group_polls == 'yes_default') { add_group_tool_option('polls', elgg_echo('polls:enable_polls'), TRUE); } else { if ($group_polls == 'yes_not_default') { add_group_tool_option('polls', elgg_echo('polls:enable_polls'), FALSE); } } //add widgets elgg_register_widget_type('poll', elgg_echo('polls:my_widget_title'), elgg_echo('polls:my_widget_description'), "profile,groups"); elgg_register_widget_type('latestPolls', elgg_echo('polls:latest_widget_title'), elgg_echo('polls:latest_widget_description'), "index,profile,dashboard,groups"); elgg_register_widget_type('poll_individual', elgg_echo('polls:individual'), elgg_echo('poll_individual_group:widget:description'), "index,profile,dashboard,groups"); // Register actions $action_path = elgg_get_plugins_path() . 'polls/actions/polls'; elgg_register_action("polls/add", "{$action_path}/add.php"); elgg_register_action("polls/edit", "{$action_path}/edit.php"); elgg_register_action("polls/delete", "{$action_path}/delete.php"); elgg_register_action("polls/vote", "{$action_path}/vote.php"); }
/** * Init function for this plugin * * @return void */ function event_manager_init() { elgg_register_library("dompdf", dirname(__FILE__) . "/vendors/dompdf/dompdf_config.inc.php"); // 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"); // notifications elgg_register_notification_event('object', Event::SUBTYPE, array('create')); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:' . Event::SUBTYPE, 'event_manager_prepare_notification'); // 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 if (event_manager_groups_enabled()) { 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"), array("index", "dashboard", "profile", "groups")); // register js libraries $maps_key = elgg_get_plugin_setting("google_api_key", "event_manager"); elgg_register_js("event_manager.maps.base", "//maps.googleapis.com/maps/api/js?key=" . $maps_key . "&sensor=true"); elgg_register_js("addthisevent", "mod/event_manager/vendors/addthisevent/atemay.js"); // page handlers elgg_register_page_handler("events", "event_manager_page_handler"); // events elgg_register_event_handler("update", "object", "event_manager_update_object_handler"); // hooks elgg_register_plugin_hook_handler("register", "menu:user_hover", "event_manager_user_hover_menu"); elgg_register_plugin_hook_handler("register", "menu:entity", "event_manager_entity_menu", 600); elgg_register_plugin_hook_handler("register", "menu:owner_block", "event_manager_owner_block_menu"); elgg_register_plugin_hook_handler("permissions_check", "object", "event_manager_permissions_check_handler"); elgg_register_plugin_hook_handler("entity:url", "object", "event_manager_widget_events_url"); // actions elgg_register_action("event_manager/event/edit", dirname(__FILE__) . "/actions/event/edit.php"); elgg_register_action("event_manager/event/delete", dirname(__FILE__) . "/actions/event/delete.php"); elgg_register_action("event_manager/event/rsvp", dirname(__FILE__) . "/actions/event/rsvp.php"); elgg_register_action("event_manager/event/upload", dirname(__FILE__) . "/actions/event/upload.php"); elgg_register_action("event_manager/event/deletefile", dirname(__FILE__) . "/actions/event/deletefile.php"); elgg_register_action("event_manager/event/search", dirname(__FILE__) . "/actions/event/search.php"); elgg_register_action("event_manager/event/unsubscribe", dirname(__FILE__) . "/actions/event/unsubscribe.php", "public"); elgg_register_action("event_manager/event/unsubscribe_confirm", dirname(__FILE__) . "/actions/event/unsubscribe_confirm.php", "public"); elgg_register_action("event_manager/event/resend_confirmation", dirname(__FILE__) . "/actions/event/resend_confirmation.php"); elgg_register_action("event_manager/event/register", dirname(__FILE__) . "/actions/event/register.php", "public"); elgg_register_action("event_manager/attendees/export", dirname(__FILE__) . "/actions/attendees/export.php"); elgg_register_action("event_manager/attendees/move_to_attendees", dirname(__FILE__) . "/actions/attendees/move_to_attendees.php"); elgg_register_action("event_manager/registration/edit", dirname(__FILE__) . "/actions/registration/edit.php"); elgg_register_action("event_manager/registration/approve", dirname(__FILE__) . "/actions/registration/approve.php"); elgg_register_action("event_manager/registration/pdf", dirname(__FILE__) . "/actions/registration/pdf.php", "public"); elgg_register_action("event_manager/registration/confirm", dirname(__FILE__) . "/actions/registration/confirm.php", "public"); elgg_register_action("event_manager/slot/save", dirname(__FILE__) . "/actions/slot/save.php"); elgg_register_action("event_manager/slot/delete", dirname(__FILE__) . "/actions/slot/delete.php"); elgg_register_action("event_manager/day/delete", dirname(__FILE__) . "/actions/day/delete.php"); }
/** * Initialize the pages plugin. * */ function pages_init() { // register a library of helper functions elgg_register_library('elgg:pages', __DIR__ . '/lib/pages.php'); $item = new ElggMenuItem('pages', elgg_echo('pages'), 'pages/all'); elgg_register_menu_item('site', $item); // Register a page handler, so we can have nice URLs elgg_register_page_handler('pages', 'pages_page_handler'); // Register a url handler elgg_register_plugin_hook_handler('entity:url', 'object', 'pages_set_url'); elgg_register_plugin_hook_handler('entity:url', 'object', 'pages_set_url'); elgg_register_plugin_hook_handler('extender:url', 'annotation', 'pages_set_revision_url'); // Register some actions $action_base = __DIR__ . '/actions'; elgg_register_action("pages/edit", "{$action_base}/pages/edit.php"); elgg_register_action("pages/delete", "{$action_base}/pages/delete.php"); elgg_register_action("annotations/page/delete", "{$action_base}/annotations/page/delete.php"); // Extend the main css view elgg_extend_view('elgg.css', 'pages/css'); elgg_define_js('jquery.treeview', array('src' => '/mod/pages/vendors/jquery-treeview/jquery.treeview.min.js', 'exports' => 'jQuery.fn.treeview', 'deps' => array('jquery'))); $css_url = 'mod/pages/vendors/jquery-treeview/jquery.treeview.css'; elgg_register_css('jquery.treeview', $css_url); // Register entity type for search elgg_register_entity_type('object', 'page'); elgg_register_entity_type('object', 'page_top'); // Register for notifications elgg_register_notification_event('object', 'page'); elgg_register_notification_event('object', 'page_top'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:page', 'pages_prepare_notification'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:page_top', 'pages_prepare_notification'); // add to groups add_group_tool_option('pages', elgg_echo('groups:enablepages'), true); elgg_extend_view('groups/tool_latest', 'pages/group_module'); //add a widget elgg_register_widget_type('pages', elgg_echo('pages'), elgg_echo('pages:widget:description')); // Language short codes must be of the form "pages:key" // where key is the array key below elgg_set_config('pages', array('title' => 'text', 'description' => 'longtext', 'tags' => 'tags', 'parent_guid' => 'parent', 'access_id' => 'access', 'write_access_id' => 'write_access')); elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'pages_owner_block_menu'); // write permission plugin hooks elgg_register_plugin_hook_handler('permissions_check', 'object', 'pages_write_permission_check'); elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'pages_container_permission_check'); elgg_register_plugin_hook_handler('access:collections:write', 'user', 'pages_write_access_options_hook'); // icon url override elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'pages_icon_url_override'); // entity menu elgg_register_plugin_hook_handler('register', 'menu:entity', 'pages_entity_menu_setup'); // register ecml views to parse elgg_register_plugin_hook_handler('get_views', 'ecml', 'pages_ecml_views_hook'); // allow to be liked elgg_register_plugin_hook_handler('likes:is_likable', 'object:page', 'Elgg\\Values::getTrue'); elgg_register_plugin_hook_handler('likes:is_likable', 'object:page_top', 'Elgg\\Values::getTrue'); // prevent public write access elgg_register_plugin_hook_handler('view_vars', 'input/access', 'pages_write_access_vars'); }
function publication_init() { // extend javascript elgg_extend_view('js/elgg', 'js/publications/site'); elgg_extend_view('css/elgg', 'css/publications/site'); // ajax views elgg_register_ajax_view('publications/publication/custom_fields'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('publications', 'publication_page_handler'); // Add a new widget elgg_register_widget_type('publications', elgg_echo('publications:widget'), elgg_echo('publications:widget:description')); // Register granular notification for this type elgg_register_notification_event('object', Publication::SUBTYPE, ['create']); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:' . Publication::SUBTYPE, ['\\ColdTrick\\Publications\\Notifications', 'createPublication']); // Register entity type for search elgg_register_entity_type('object', Publication::SUBTYPE); // add group option add_group_tool_option('publication', elgg_echo('publication:enablepublication'), true); // register plugin hooks elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'publication_register_menu_owner_block'); elgg_register_plugin_hook_handler('register', 'menu:title', 'publication_register_menu_title'); // elgg_register_plugin_hook_handler('action','register','publication_custom_register'); elgg_register_plugin_hook_handler('permissions_check', 'object', 'publication_write_permission_check'); // custom publication types elgg_register_plugin_hook_handler('register:types', 'publications', ['\\ColdTrick\\Publications\\Types', 'registerTypeBibTex']); elgg_register_plugin_hook_handler('all', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateRequiredAuthors']); elgg_register_plugin_hook_handler('all', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateRequiredAuthorsEditors']); elgg_register_plugin_hook_handler('input_validation:article', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputArticle']); elgg_register_plugin_hook_handler('input_validation:book', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputBook']); elgg_register_plugin_hook_handler('input_validation:inbook', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputInBook']); elgg_register_plugin_hook_handler('input_validation:incollection', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputInCollection']); elgg_register_plugin_hook_handler('input_validation:inproceedings', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputInProceedings']); elgg_register_plugin_hook_handler('input_validation:mastersthesis', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputMastersThesis']); elgg_register_plugin_hook_handler('input_validation:phdhesis', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputPhdThesis']); elgg_register_plugin_hook_handler('input_validation:proceedings', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputProceedings']); elgg_register_plugin_hook_handler('input_validation:techreport', 'publications', ['\\ColdTrick\\Publications\\Types', 'validateInputTechreport']); elgg_register_event_handler('save:data', 'publications', ['\\ColdTrick\\Publications\\Types', 'saveeAuthors']); elgg_register_event_handler('save:data', 'publications', ['\\ColdTrick\\Publications\\Types', 'saveBookEditors']); // register event handlers elgg_register_event_handler('login', 'user', 'publication_login_check'); elgg_register_event_handler('upgrade', 'system', '\\ColdTrick\\Publications\\Upgrade::setClassHandler'); elgg_register_event_handler('upgrade', 'system', '\\ColdTrick\\Publications\\Upgrade::updateArticleBook'); elgg_register_event_handler('upgrade', 'system', '\\ColdTrick\\Publications\\Upgrade::updateArticleJournal'); elgg_register_event_handler('upgrade', 'system', '\\ColdTrick\\Publications\\Upgrade::abstractToDescription'); // Make sure the publication initialisation function is called on initialisation elgg_register_event_handler('pagesetup', 'system', 'publication_pagesetup'); elgg_register_event_handler('create', 'user', 'publication_create_user'); // Register actions elgg_register_action('publications/edit', dirname(__FILE__) . '/actions/edit.php'); elgg_register_action('publications/delete', dirname(__FILE__) . '/actions/delete.php'); // elgg_register_action('publications/invite', dirname(__FILE__) . '/actions/invite.php'); elgg_register_action('publications/import', dirname(__FILE__) . '/actions/import.php'); elgg_register_action('publications/export', dirname(__FILE__) . '/actions/export.php'); }
function videolist_init() { elgg_register_library('elgg:videolist', elgg_get_plugins_path() . 'videolist/lib/videolist.php'); if (!class_exists('Videolist_PlatformInterface')) { // ./classes autoloading failed (pre 1.9) spl_autoload_register('videolist_load_class'); } // add a site navigation item $item = new ElggMenuItem('videolist', elgg_echo('videolist'), 'videolist/all'); elgg_register_menu_item('site', $item); // Extend system CSS with our own styles elgg_extend_view('css/elgg', 'videolist/css'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('videolist', 'videolist_page_handler'); // Language short codes must be of the form "videolist:key" // where key is the array key below elgg_set_config('videolist', array('video_url' => 'url', 'title' => 'text', 'description' => 'longtext', 'tags' => 'tags', 'access_id' => 'access')); elgg_set_config('videolist_dimensions', array('width' => 600, 'height' => 400)); // add to groups add_group_tool_option('videolist', elgg_echo('groups:enablevideolist'), true); elgg_extend_view('groups/tool_latest', 'videolist/group_module'); //add a widget elgg_register_widget_type('videolist', elgg_echo('videolist'), elgg_echo('videolist:widget:description')); // Register granular notification for this type elgg_register_notification_event('object', 'videolist_item', array('create')); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:videolist_item', 'videolist_prepare_notification'); // Register entity type for search elgg_register_entity_type('object', 'videolist_item'); // add a file link to owner blocks elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'videolist_owner_block_menu'); //register entity url handler elgg_register_plugin_hook_handler('entity:url', 'object', 'videolist_url_handler'); elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'videolist_icon_url_override'); // register for embed elgg_register_plugin_hook_handler('embed_get_sections', 'all', 'videolist_embed_get_sections'); elgg_register_plugin_hook_handler('embed_get_items', 'videolist', 'videolist_embed_get_items'); // handle URLs without scheme elgg_register_plugin_hook_handler('videolist:preprocess', 'url', 'videolist_preprocess_url'); elgg_register_plugin_hook_handler('likes:is_likable', 'object:videolist_item', 'Elgg\\Values::getTrue'); // Register actions $actions_path = elgg_get_plugins_path() . "videolist/actions/videolist"; elgg_register_action("videolist/add", "{$actions_path}/add.php"); elgg_register_action("videolist/edit", "{$actions_path}/edit.php"); elgg_register_action("videolist/delete", "{$actions_path}/delete.php"); elgg_register_action("videolist/get_metadata_from_url", "{$actions_path}/get_metadata_from_url.php"); elgg_register_event_handler('upgrade', 'system', 'videolist_run_upgrades'); }
/** * File plugin initialization functions. */ function file_init() { // register a library of helper functions elgg_register_library('elgg:file', __DIR__ . '/lib/file.php'); // Site navigation $item = new ElggMenuItem('file', elgg_echo('file'), 'file/all'); elgg_register_menu_item('site', $item); // Extend CSS elgg_extend_view('elgg.css', 'file/css'); // add enclosure to rss item elgg_extend_view('extensions/item', 'file/enclosure'); // extend group main page elgg_extend_view('groups/tool_latest', 'file/group_module'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('file', 'file_page_handler'); // Add a new file widget elgg_register_widget_type('filerepo', elgg_echo("file"), elgg_echo("file:widget:description")); // Register URL handlers for files elgg_register_plugin_hook_handler('entity:url', 'object', 'file_set_url'); elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'file_set_icon_url'); // Register for notifications elgg_register_notification_event('object', 'file', array('create')); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:file', 'file_prepare_notification'); // add the group files tool option add_group_tool_option('file', elgg_echo('groups:enablefiles'), true); // Register entity type for search elgg_register_entity_type('object', 'file'); // add a file link to owner blocks elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'file_owner_block_menu'); // Register actions $action_path = __DIR__ . '/actions/file'; elgg_register_action("file/upload", "{$action_path}/upload.php"); elgg_register_action("file/delete", "{$action_path}/delete.php"); // temporary - see #2010 elgg_register_action("file/download", "{$action_path}/download.php"); // cleanup thumbnails on delete. high priority because we want to try to make sure the // deletion will actually occur before we go through with this. elgg_register_event_handler('delete', 'object', 'file_handle_object_delete', 999); // embed support $item = ElggMenuItem::factory(array('name' => 'file', 'text' => elgg_echo('file'), 'priority' => 10, 'data' => array('options' => array('type' => 'object', 'subtype' => 'file')))); elgg_register_menu_item('embed', $item); $item = ElggMenuItem::factory(array('name' => 'file_upload', 'text' => elgg_echo('file:upload'), 'priority' => 100, 'data' => array('view' => 'embed/file_upload/content'))); elgg_register_menu_item('embed', $item); elgg_extend_view('theme_sandbox/icons', 'file/theme_sandbox/icons/files'); // allow to be liked elgg_register_plugin_hook_handler('likes:is_likable', 'object:file', 'Elgg\\Values::getTrue'); }
/** * Comments initialization function * * @return void * @access private */ function _elgg_comments_init() { elgg_register_entity_type('object', 'comment'); elgg_register_plugin_hook_handler('register', 'menu:entity', '_elgg_comment_setup_entity_menu', 900); elgg_register_plugin_hook_handler('entity:url', 'object', '_elgg_comment_url_handler'); elgg_register_plugin_hook_handler('container_permissions_check', 'object', '_elgg_comments_container_permissions_override'); elgg_register_plugin_hook_handler('permissions_check', 'object', '_elgg_comments_permissions_override'); elgg_register_plugin_hook_handler('email', 'system', '_elgg_comments_notification_email_subject'); elgg_register_event_handler('update:after', 'all', '_elgg_comments_access_sync', 600); elgg_register_page_handler('comment', '_elgg_comments_page_handler'); elgg_register_ajax_view('core/ajax/edit_comment'); elgg_register_plugin_hook_handler('likes:is_likable', 'object:comment', 'Elgg\\Values::getTrue'); elgg_register_notification_event('object', 'comment', ['create']); elgg_register_plugin_hook_handler('get', 'subscriptions', '_elgg_comments_add_content_owner_to_subscriptions'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:comment', '_elgg_comments_prepare_content_owner_notification'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:comment', '_elgg_comments_prepare_notification'); }
/** * Init news plugin. */ function news_init() { elgg_register_library('elgg:news', __DIR__ . '/lib/news.php'); // add a site navigation item $item = new ElggMenuItem('news', elgg_echo('news:news'), 'news/all'); elgg_register_menu_item('site', $item); elgg_register_event_handler('upgrade', 'upgrade', 'news_run_upgrades'); // add to the main css elgg_extend_view('elgg.css', 'news/css'); // routing of urls elgg_register_page_handler('news', 'news_page_handler'); // override the default url to view a news object elgg_register_plugin_hook_handler('entity:url', 'object', 'news_set_url'); // notifications elgg_register_notification_event('object', 'news', array('publish')); elgg_register_plugin_hook_handler('prepare', 'notification:publish:object:news', 'news_prepare_notification'); // add news link to elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'news_owner_block_menu'); // Register for search. elgg_register_entity_type('object', 'news'); // Add group option add_group_tool_option('news', elgg_echo('news:enablenews'), true); elgg_extend_view('groups/tool_latest', 'news/group_module'); // add news in groups widget elgg_register_widget_type("news_in_groups", elgg_echo("news:news_in_groups:title"), elgg_echo("news:news_in_groups:description"), array("profile", "index", "dashboard"), true); if (elgg_is_active_plugin('widget_manager')) { //add index widget for Widget Manager plugin elgg_register_widget_type('index_news', elgg_echo("news:news"), elgg_echo('news:widget:description'), array("index")); //add groups widget for Widget Manager plugin elgg_register_widget_type('groups_news', elgg_echo("news:news"), elgg_echo('news:widget:description'), array("groups")); //register title urls for widgets elgg_register_plugin_hook_handler("entity:url", "object", "news_widget_urls"); } // register actions $action_path = __DIR__ . '/actions/news'; elgg_register_action('news/save', "{$action_path}/save.php"); elgg_register_action('news/auto_save_revision', "{$action_path}/auto_save_revision.php"); elgg_register_action('news/delete', "{$action_path}/delete.php"); // entity menu elgg_register_plugin_hook_handler('register', 'menu:entity', 'news_entity_menu_setup'); // ecml elgg_register_plugin_hook_handler('get_views', 'ecml', 'news_ecml_views_hook'); // allow news posts to be liked elgg_register_plugin_hook_handler('likes:is_likable', 'object:news', 'Elgg\\Values::getTrue'); }
/** * video init */ function videos_init() { // add a site navigation item $item = new ElggMenuItem('video', elgg_echo('videos'), 'videos/all'); elgg_register_menu_item('site', $item); elgg_register_library('elgg:videos', elgg_get_plugins_path() . 'videos/lib/videos.php'); elgg_register_library('elgg:videos:embed', elgg_get_plugins_path() . 'videos/lib/embed_video.php'); elgg_register_library('elgg:youtube_api', elgg_get_plugins_path() . 'videos/lib/youtube_functions.php'); $action_path = elgg_get_plugins_path() . "videos/actions/videos"; elgg_register_action('videos/save', "{$action_path}/save.php"); elgg_register_action('videos/delete', "{$action_path}/delete.php"); //extend owner block menu elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'videos_owner_block_menu'); //Add menu's in sidebar elgg_register_plugin_hook_handler('register', 'menu:page', 'videos_page_menu'); $context = elgg_get_context(); $contexts = elgg_get_plugin_setting('search_contexts', 'videos'); $contexts = explode(",", $contexts); if (in_array($context, $contexts)) { elgg_extend_view('page/elements/sidebar', 'page/elements/search', '400'); } // get items in video menu elgg_register_plugin_hook_handler("register", "menu:entity", "videos_entity_menu_setup"); // register actions elgg_register_action("videos/toggle_metadata", dirname(__FILE__) . "/actions/toggle_metadata.php"); elgg_register_page_handler('videos', 'videos_page_handler'); elgg_extend_view('css/elgg', 'videos/css'); elgg_register_widget_type('videos', elgg_echo('videos'), elgg_echo('videos:widget:description'), array('dashboard', 'profile', 'main', 'index')); if (function_exists('elgg_get_version')) { elgg_register_notification_event('object', 'videos'); } else { register_notification_object('object', 'videos', elgg_echo('videos:new')); } elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'videos_notify_message'); // Register a URL handler for video posts elgg_register_entity_url_handler('object', 'videos', 'videos_url'); elgg_register_entity_type('object', 'videos'); add_group_tool_option('videos', elgg_echo('videos:enablevideos'), true); elgg_extend_view('groups/tool_latest', 'videos/group_module'); $views = array('output/longtext', 'output/plaintext'); foreach ($views as $view) { elgg_register_plugin_hook_handler("view", $view, "videos_view_filter", 500); } }
/** * Called during system init * * @return void */ function poll_init() { // register js if (file_exists(dirname(__FILE__) . '/vendor/npm-asset/chart.js/dist/Chart.min.js')) { elgg_define_js('chartjs', ['src' => '/mod/poll/vendor/npm-asset/chart.js/dist/Chart.min.js']); } else { elgg_define_js('chartjs', ['src' => '/vendor/npm-asset/chart.js/dist/Chart.min.js']); } // css elgg_extend_view('css/elgg', 'css/poll/site.css'); // register page handler elgg_register_page_handler('poll', ['\\ColdTrick\\Poll\\PageHandlers', 'pollHandler']); // searchable elgg_register_entity_type('object', Poll::SUBTYPE); // group tool option if (poll_is_enabled_for_group()) { add_group_tool_option('poll', elgg_echo('poll:group_tool:title'), false); elgg_extend_view('groups/tool_latest', 'poll/group_module'); elgg_extend_view('groups/edit', 'poll/group_settings'); } // widgets elgg_register_widget_type('recent_polls', elgg_echo('poll:widgets:recent_polls:title'), elgg_echo('poll:widgets:recent_polls:description'), ['index', 'profile', 'dashboard', 'groups']); elgg_register_widget_type('single_poll', elgg_echo('poll:widgets:single_poll:title'), elgg_echo('poll:widgets:single_poll:description'), ['index', 'profile', 'groups'], true); elgg_register_plugin_hook_handler('entity:url', 'object', ['\\ColdTrick\\Poll\\Widgets', 'widgetUrls']); elgg_register_plugin_hook_handler('group_tool_widgets', 'widget_manager', ['\\ColdTrick\\Poll\\Widgets', 'groupToolWidgets']); // notifications elgg_register_notification_event('object', Poll::SUBTYPE, ['create']); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:' . Poll::SUBTYPE, ['\\ColdTrick\\Poll\\Notifications', 'createPoll']); elgg_register_plugin_hook_handler('entity_types', 'content_subscriptions', '\\ColdTrick\\Poll\\ContentSubscriptions::registerEntityType'); elgg_register_plugin_hook_handler('cron', 'daily', '\\ColdTrick\\Poll\\Notifications::closeCron'); // plugin hooks elgg_register_plugin_hook_handler('register', 'menu:site', ['\\ColdTrick\\Poll\\MenuHandler', 'siteMenu']); elgg_register_plugin_hook_handler('register', 'menu:owner_block', ['\\ColdTrick\\Poll\\MenuHandler', 'userOwnerBlock']); elgg_register_plugin_hook_handler('register', 'menu:owner_block', ['\\ColdTrick\\Poll\\MenuHandler', 'groupOwnerBlock']); elgg_register_plugin_hook_handler('register', 'menu:poll_tabs', ['\\ColdTrick\\Poll\\MenuHandler', 'pollTabs']); elgg_register_plugin_hook_handler('container_permissions_check', 'all', ['\\ColdTrick\\Poll\\Permissions', 'canWriteContainer']); elgg_register_plugin_hook_handler('likes:is_likable', 'object:' . \Poll::SUBTYPE, '\\Elgg\\Values::getTrue'); elgg_register_plugin_hook_handler('supported_types', 'entity_tools', '\\ColdTrick\\Poll\\MigratePoll::supportedSubtypes'); // register actions elgg_register_action('poll/edit', dirname(__FILE__) . '/actions/poll/edit.php'); elgg_register_action('poll/delete', dirname(__FILE__) . '/actions/poll/delete.php'); elgg_register_action('poll/vote', dirname(__FILE__) . '/actions/answer/vote.php'); elgg_register_action('poll/group_settings', dirname(__FILE__) . '/actions/group_settings.php'); }
/** * Init blog plugin. */ function blog_init() { elgg_register_library('elgg:blog', elgg_get_plugins_path() . 'blog/lib/blog.php'); // add a site navigation item $item = new ElggMenuItem('blog', elgg_echo('blog:blogs'), 'blog/all'); elgg_register_menu_item('site', $item); elgg_register_event_handler('upgrade', 'upgrade', 'blog_run_upgrades'); // add to the main css elgg_extend_view('css/elgg', 'blog/css'); // register the blog's JavaScript $blog_js = elgg_get_simplecache_url('js', 'blog/save_draft'); elgg_register_simplecache_view('js/blog/save_draft'); elgg_register_js('elgg.blog', $blog_js); // routing of urls elgg_register_page_handler('blog', 'blog_page_handler'); // override the default url to view a blog object elgg_register_plugin_hook_handler('entity:url', 'object', 'blog_set_url'); // notifications elgg_register_notification_event('object', 'blog', array('publish')); elgg_register_plugin_hook_handler('prepare', 'notification:publish:object:blog', 'blog_prepare_notification'); // add blog link to elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'blog_owner_block_menu'); // pingbacks //elgg_register_event_handler('create', 'object', 'blog_incoming_ping'); //elgg_register_plugin_hook_handler('pingback:object:subtypes', 'object', 'blog_pingback_subtypes'); // Register for search. elgg_register_entity_type('object', 'blog'); // Add group option add_group_tool_option('blog', elgg_echo('blog:enableblog'), true); elgg_extend_view('groups/tool_latest', 'blog/group_module'); // add a blog widget elgg_register_widget_type('blog', elgg_echo('blog'), elgg_echo('blog:widget:description')); // register actions $action_path = elgg_get_plugins_path() . 'blog/actions/blog'; elgg_register_action('blog/save', "{$action_path}/save.php"); elgg_register_action('blog/auto_save_revision', "{$action_path}/auto_save_revision.php"); elgg_register_action('blog/delete', "{$action_path}/delete.php"); // entity menu elgg_register_plugin_hook_handler('register', 'menu:entity', 'blog_entity_menu_setup'); // ecml elgg_register_plugin_hook_handler('get_views', 'ecml', 'blog_ecml_views_hook'); }
/** * Initialize the discussion component */ function discussion_init() { elgg_register_library('elgg:discussion', __DIR__ . '/lib/discussion.php'); elgg_register_page_handler('discussion', 'discussion_page_handler'); elgg_register_plugin_hook_handler('entity:url', 'object', 'discussion_set_topic_url'); // commenting not allowed on discussion topics (use a different annotation) elgg_register_plugin_hook_handler('permissions_check:comment', 'object', 'discussion_comment_override'); elgg_register_plugin_hook_handler('permissions_check', 'object', 'discussion_can_edit_reply'); // discussion reply menu elgg_register_plugin_hook_handler('register', 'menu:entity', 'discussion_reply_menu_setup'); // allow non-owners to add replies to discussion elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'discussion_reply_container_permissions_override'); elgg_register_event_handler('update:after', 'object', 'discussion_update_reply_access_ids'); $action_base = __DIR__ . '/actions/discussion'; elgg_register_action('discussion/save', "{$action_base}/save.php"); elgg_register_action('discussion/delete', "{$action_base}/delete.php"); elgg_register_action('discussion/reply/save', "{$action_base}/reply/save.php"); elgg_register_action('discussion/reply/delete', "{$action_base}/reply/delete.php"); // add link to owner block elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'discussion_owner_block_menu'); // Register for search. elgg_register_entity_type('object', 'discussion'); elgg_register_plugin_hook_handler('search', 'object:discussion', 'discussion_search_discussion'); // because replies are not comments, need of our menu item elgg_register_plugin_hook_handler('register', 'menu:river', 'discussion_add_to_river_menu'); // add the forum tool option add_group_tool_option('forum', elgg_echo('groups:enableforum'), true); elgg_extend_view('groups/tool_latest', 'discussion/group_module'); elgg_register_js('elgg.discussion', elgg_get_simplecache_url('discussion/discussion.js')); elgg_register_ajax_view('ajax/discussion/reply/edit'); // notifications elgg_register_plugin_hook_handler('get', 'subscriptions', 'discussion_get_subscriptions'); elgg_register_notification_event('object', 'discussion'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:discussion', 'discussion_prepare_notification'); elgg_register_notification_event('object', 'discussion_reply'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:discussion_reply', 'discussion_prepare_reply_notification'); // allow ecml in discussion elgg_register_plugin_hook_handler('get_views', 'ecml', 'discussion_ecml_views_hook'); // allow to be liked elgg_register_plugin_hook_handler('likes:is_likable', 'object:discussion', 'Elgg\\Values::getTrue'); elgg_register_plugin_hook_handler('likes:is_likable', 'object:discussion_reply', 'Elgg\\Values::getTrue'); }
/** * File plugin initialization functions. */ function file_init() { // register a library of helper functions elgg_register_library('elgg:file', elgg_get_plugins_path() . 'file/lib/file.php'); // Site navigation $item = new ElggMenuItem('file', elgg_echo('file'), 'file/all'); elgg_register_menu_item('site', $item); // Extend CSS elgg_extend_view('css/elgg', 'file/css'); // add enclosure to rss item elgg_extend_view('extensions/item', 'file/enclosure'); // extend group main page elgg_extend_view('groups/tool_latest', 'file/group_module'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('file', 'file_page_handler'); // Add a new file widget elgg_register_widget_type('filerepo', elgg_echo("file"), elgg_echo("file:widget:description")); // Register URL handlers for files elgg_register_plugin_hook_handler('entity:url', 'object', 'file_set_url'); elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'file_set_icon_url'); // Register for notifications elgg_register_notification_event('object', 'file', array('create')); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:file', 'file_prepare_notification'); // add the group files tool option add_group_tool_option('file', elgg_echo('groups:enablefiles'), true); // Register entity type for search elgg_register_entity_type('object', 'file'); // add a file link to owner blocks elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'file_owner_block_menu'); // Register actions $action_path = elgg_get_plugins_path() . 'file/actions/file'; elgg_register_action("file/upload", "{$action_path}/upload.php"); elgg_register_action("file/delete", "{$action_path}/delete.php"); // temporary - see #2010 elgg_register_action("file/download", "{$action_path}/download.php"); // embed support $item = ElggMenuItem::factory(array('name' => 'file', 'text' => elgg_echo('file'), 'priority' => 10, 'data' => array('options' => array('type' => 'object', 'subtype' => 'file')))); elgg_register_menu_item('embed', $item); $item = ElggMenuItem::factory(array('name' => 'file_upload', 'text' => elgg_echo('file:upload'), 'priority' => 100, 'data' => array('view' => 'embed/file_upload/content'))); elgg_register_menu_item('embed', $item); elgg_extend_view('theme_sandbox/icons', 'file/theme_sandbox/icons/files'); }
/** * Initialize the plugin */ function scheduling_init() { $actions_path = elgg_get_plugins_path() . 'scheduling/actions/scheduling/'; elgg_register_action('scheduling/save', $actions_path . 'save.php'); elgg_register_action('scheduling/days', $actions_path . 'days.php'); elgg_register_action('scheduling/answer', $actions_path . 'answer.php'); elgg_register_action('scheduling/delete', $actions_path . 'delete.php'); elgg_register_library('scheduling', elgg_get_plugins_path() . 'scheduling/lib/scheduling.php'); elgg_register_page_handler('scheduling', 'scheduling_page_handler'); elgg_register_plugin_hook_handler('entity:url', 'object', 'scheduling_poll_url'); elgg_register_plugin_hook_handler('register', 'menu:owner_block', '\\Elgg\\Scheduling\\OwnerBlockMenu::register'); elgg_register_plugin_hook_handler('register', 'menu:entity', 'scheduling_entity_menu'); // Notifications elgg_register_notification_event('object', 'scheduling_poll', array('publish', 'update')); elgg_register_plugin_hook_handler('prepare', 'notification:publish:object:scheduling_poll', '\\Elgg\\Scheduling\\Notification::prepare'); elgg_register_plugin_hook_handler('prepare', 'notification:update:object:scheduling_poll', '\\Elgg\\Scheduling\\Notification::prepare'); elgg_register_plugin_hook_handler('get', 'subscriptions', '\\Elgg\\Scheduling\\Notification::subscribers'); add_group_tool_option('scheduling', elgg_echo('scheduling:group:enable')); elgg_extend_view('css/elgg', 'scheduling/css'); elgg_register_menu_item('site', array('name' => 'scheduling', 'text' => elgg_echo('scheduling'), 'href' => 'scheduling')); }
/** * This function is called when the Elgg system gets initialized * * @return void */ function content_subscriptions_init() { // JS elgg_extend_view("js/elgg", "js/content_subscriptions/site"); // settings elgg_extend_view("notifications/subscriptions/personal", "content_subscriptions/notifications/settings"); // register event handlers elgg_register_event_handler("create", "object", "content_subscriptions_create_object_handler"); elgg_register_event_handler("create", "annotation", array('ColdTrick\\ContentSubscriptions\\Likes', 'create')); elgg_register_event_handler("upgrade", "system", "content_subscriptions_upgrade_system_handler"); elgg_register_notification_event("object", "comment"); elgg_register_plugin_hook_handler("prepare", "notification:create:object:comment", "content_subscriptions_prepare_comment_notification"); // register plugin hooks elgg_register_plugin_hook_handler("register", "menu:entity", "content_subscriptions_register_entity_menu_hook"); elgg_register_plugin_hook_handler("get", "subscriptions", "content_subscriptions_get_subscriptions_verify_hook", 400); elgg_register_plugin_hook_handler("get", "subscriptions", array('ColdTrick\\ContentSubscriptions\\Subscriptions', 'addDiscussionOwner')); elgg_register_plugin_hook_handler("get", "subscriptions", "content_subscriptions_get_subscriptions_group_check_hook", 999); elgg_register_plugin_hook_handler("action", "notificationsettings/save", "content_subscriptions_notifications_settings_save_hook"); // register actions elgg_register_action("content_subscriptions/subscribe", dirname(__FILE__) . "/actions/subscribe.php"); elgg_register_action("content_subscriptions/upgrade", dirname(__FILE__) . "/actions/upgrade.php", "admin"); }
/** * This function is called when the Elgg system gets initialized * * @return void */ function content_subscriptions_init() { // JS elgg_extend_view('js/elgg', 'js/content_subscriptions/site.js'); // settings elgg_extend_view('notifications/subscriptions/personal', 'content_subscriptions/notifications/settings'); // register event handlers elgg_register_event_handler('create', 'object', '\\ColdTrick\\ContentSubscriptions\\Comments::createObject'); elgg_register_event_handler('create', 'annotation', '\\ColdTrick\\ContentSubscriptions\\Likes::create'); elgg_register_event_handler('upgrade', 'system', '\\ColdTrick\\ContentSubscriptions\\Upgrade::registerScript'); elgg_register_notification_event('object', 'comment'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:comment', '\\ColdTrick\\ContentSubscriptions\\Comments::prepareNotification'); // register plugin hooks elgg_register_plugin_hook_handler('register', 'menu:entity', '\\ColdTrick\\ContentSubscriptions\\EntityMenu::register'); elgg_register_plugin_hook_handler('get', 'subscriptions', '\\ColdTrick\\ContentSubscriptions\\Subscriptions::verifySubscribersSettings', 400); elgg_register_plugin_hook_handler('get', 'subscriptions', '\\ColdTrick\\ContentSubscriptions\\Subscriptions::addDiscussionOwner'); elgg_register_plugin_hook_handler('get', 'subscriptions', '\\ColdTrick\\ContentSubscriptions\\Subscriptions::removeUnsubscribedGroupMembers', 999); elgg_register_plugin_hook_handler('action', 'notificationsettings/save', '\\ColdTrick\\ContentSubscriptions\\UserSettings::notificationSettingsSaveAction'); // register actions elgg_register_action('content_subscriptions/subscribe', dirname(__FILE__) . '/actions/subscribe.php'); elgg_register_action('content_subscriptions/upgrade', dirname(__FILE__) . '/actions/upgrade.php', 'admin'); }
/** * This function is called during the 'init' event * * @return void */ function tag_tools_init() { // register js/ss lib elgg_define_js('jquery.tag-it', ['src' => 'mod/tag_tools/vendors/jquery/tag_it/js/tag-it.min.js']); elgg_extend_view('css/elgg', 'css/tag_tools/jquery.tagit.css'); elgg_extend_view('css/elgg', 'css/tag_tools/follow.css'); elgg_extend_view('js/elgg', 'js/tag_tools/follow.js'); // extend views elgg_extend_view('input/tags', 'tag_tools/extend_tags'); elgg_extend_view('output/tag', 'tag_tools/output/tag'); // register events elgg_register_event_handler('create', 'metadata', '\\ColdTrick\\TagTools\\Enqueue::createMetadata'); elgg_register_event_handler('update:after', 'all', '\\ColdTrick\\TagTools\\Enqueue::afterEntityUpdate'); elgg_register_event_handler('upgrade', 'system', '\\ColdTrick\\TagTools\\Upgrade::markOldTagsAsSent'); // plugin hooks elgg_register_plugin_hook_handler('route', 'tags', '\\ColdTrick\\TagTools\\Router::tags'); elgg_register_plugin_hook_handler('route', 'activity', '\\ColdTrick\\TagTools\\Router::activity'); elgg_register_plugin_hook_handler('route', 'notifications', '\\ColdTrick\\TagTools\\Router::notifications'); elgg_register_plugin_hook_handler('register', 'menu:filter', '\\ColdTrick\\TagTools\\MenuItems::registerActivityTab'); elgg_register_plugin_hook_handler('register', 'menu:page', '\\ColdTrick\\TagTools\\MenuItems::registerSettingsMenuItem'); elgg_register_plugin_hook_handler('register', 'menu:follow_tag', '\\ColdTrick\\TagTools\\MenuItems::registerFollowTag'); // notifications elgg_register_notification_event('relationship', 'tag_tools:notification'); elgg_register_plugin_hook_handler('get', 'subscriptions', '\\ColdTrick\\TagTools\\Notifications::getSubscribers', 9999); elgg_register_plugin_hook_handler('prepare', 'notification:create:relationship:tag_tools:notification', '\\ColdTrick\\TagTools\\Notifications::prepareMessage'); elgg_register_plugin_hook_handler('send:after', 'notifications', '\\ColdTrick\\TagTools\\Notifications::afterCleanup'); elgg_register_plugin_hook_handler('relationship:url', 'relationship', '\\ColdTrick\\TagTools\\Notifications::getNotificationURL'); // widgets elgg_register_widget_type('follow_tags', elgg_echo('tag_tools:widgets:follow_tags:title'), elgg_echo('tag_tools:widgets:follow_tags:description'), ['profile', 'dashboard']); if (elgg_is_active_plugin('tagcloud')) { elgg_register_widget_type('tagcloud', elgg_echo('tagcloud'), elgg_echo('tag_tools:widgets:tagcloud:description'), ['profile', 'dashboard', 'index', 'groups'], false); } // actions elgg_register_action('tag_tools/follow_tag', dirname(__FILE__) . '/actions/follow_tag.php'); elgg_register_action('tag_tools/notifications/edit', dirname(__FILE__) . '/actions/notifications/edit.php'); elgg_register_action('tag_tools/upgrades/set_tag_notifications_sent', dirname(__FILE__) . '/actions/upgrades/set_tag_notifications_sent.php', 'admin'); }
function showcase_init() { elgg_extend_view('css/elgg', 'css/showcase'); $js = elgg_get_simplecache_url('js', 'showcase/js'); elgg_register_simplecache_view('js/showcase/js'); elgg_register_js('showcase', $js); $masonry = elgg_get_simplecache_url('js', 'showcase/masonry'); elgg_register_simplecache_view('js/showcase/masonry'); elgg_register_js('showcase/masonry', $masonry); //general elgg_register_entity_type("object", 'showcase'); //actions $actions_base = dirname(__FILE__) . "/actions/showcase"; elgg_register_action("showcase/add", "{$actions_base}/save.php"); elgg_register_action("showcase/edit", "{$actions_base}/save.php"); elgg_register_action("showcase/delete", "{$actions_base}/delete.php"); elgg_register_action("showcase/screenshot/delete", "{$actions_base}/screenshot_delete.php"); elgg_register_action("showcase/toggle_validation", "{$actions_base}/toggle_validation.php", 'admin'); elgg_register_action("showcase/toggle_featured", "{$actions_base}/toggle_featured.php", 'admin'); //handlers elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'showcase_icon_url_handler'); elgg_register_plugin_hook_handler('entity:url', 'object', 'showcase_url_handler'); elgg_register_plugin_hook_handler('register', 'menu:entity', 'showcase_entity_menu'); elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'showcase_container_permissions'); elgg_register_plugin_hook_handler('get', 'subscriptions', 'showcase_get_subscriptions'); elgg_register_event_handler('update', 'object', 'showcase_object_update'); elgg_register_event_handler('delete', 'object', 'showcase_object_delete'); // notifications // review is needed whenever user edits the contents, so send notifications on both 'create' and 'update' event elgg_register_notification_event('object', 'showcase', array('create', 'update')); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:showcase', 'showcase_prepare_notification'); elgg_register_plugin_hook_handler('prepare', 'notification:update:object:showcase', 'showcase_prepare_notification'); elgg_register_page_handler('showcase', 'showcase_page_handler'); elgg_register_menu_item('site', ElggMenuItem::factory(array('name' => 'showcase', 'href' => '/showcase', 'text' => elgg_echo('showcase')))); elgg_register_widget_type('showcase', elgg_echo('showcase:widget:title'), elgg_echo('showcase:widget:description'), array('profile', 'dashboard')); }
function market_init() { elgg_register_library('market', elgg_get_plugins_path() . 'market/lib/market.php'); // Add a site navigation item $item = new ElggMenuItem('market', elgg_echo('market:title'), 'market/category'); elgg_register_menu_item('site', $item); // Extend owner block menu elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'market_owner_block_menu'); elgg_register_plugin_hook_handler('register', 'menu:page', 'market_page_menu'); // Extend system CSS with our own styles elgg_extend_view('css/elgg', 'market/css'); elgg_extend_view('css/admin', 'market/admincss'); // register the market's JavaScript $market_js = elgg_get_simplecache_url('js', 'market'); elgg_register_simplecache_view('js/market'); elgg_register_js('market', $market_js, 'footer'); // Add a new widget elgg_register_widget_type('market', elgg_echo('market:widget'), elgg_echo('market:widget:description')); // Register a page handler, so we can have nice URLs elgg_register_page_handler('market', 'market_page_handler'); // override the default url to view a market object elgg_register_plugin_hook_handler('entity:url', 'object', 'market_set_url'); // Register entity type elgg_register_entity_type('object', 'market'); // Register granular notification for this type elgg_register_notification_event('object', 'market', array('create')); // Listen to notification events and supply a more useful message elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'market_notify_message'); // Setup cron job to delete old market posts elgg_register_plugin_hook_handler('cron', 'daily', 'market_expire_cron_hook'); // Register actions $action_url = elgg_get_plugins_path() . "market/actions/"; elgg_register_action("market/save", "{$action_url}save.php"); elgg_register_action("market/delete", "{$action_url}delete.php"); elgg_register_action("market/delete_img", "{$action_url}delete_img.php"); }
elgg_register_plugin_hook_handler('entity:url', 'object', [Router::class, 'urlHandler']); elgg_register_plugin_hook_handler('entity:icon:url', 'object', [Router::class, 'iconUrlHandler']); // Register/replace actions elgg_register_action('comment/save', __DIR__ . '/actions/comment/save.php'); elgg_register_action('comment/delete', __DIR__ . '/actions/comment/delete.php'); elgg_register_action("stream/like", __DIR__ . '/actions/interactions/like.php'); elgg_register_action('likes/add', __DIR__ . '/actions/likes/add.php'); elgg_register_action('likes/delete', __DIR__ . '/actions/likes/delete.php'); // Replace comments block elgg_register_plugin_hook_handler('comments', 'all', [InteractionsService::class, 'replaceCommentsBlock']); // Create an actionable river object elgg_register_event_handler('created', 'river', [InteractionsService::class, 'createRiverObject']); // Configure permissions elgg_register_plugin_hook_handler('permissions_check:comment', 'object', [Permissions::class, 'canComment']); elgg_register_plugin_hook_handler('permissions_check', 'annotation', [Permissions::class, 'canEditAnnotation']); // Setup menus elgg_register_plugin_hook_handler('register', 'menu:entity', [Menus::class, 'entityMenuSetup']); elgg_register_plugin_hook_handler('register', 'menu:interactions', [Menus::class, 'interactionsMenuSetup']); elgg_register_plugin_hook_handler('register', 'menu:river', [Menus::class, 'riverMenuSetup']); // Prepare notifications elgg_register_notification_event('object', 'comment', array('create')); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:comment', [Notifications::class, 'format']); elgg_register_plugin_hook_handler('get', 'subscriptions', [Notifications::class, 'getSubscriptions']); // Custom logic for blogs elgg_extend_view('object/blog', 'object/blog/interactions'); // Clean up elgg_unregister_plugin_hook_handler('register', 'menu:entity', 'likes_entity_menu_setup'); elgg_unregister_plugin_hook_handler('register', 'menu:river', 'likes_river_menu_setup'); elgg_unextend_view('elgg.css', 'likes/css'); elgg_unextend_view('elgg.js', 'likes/js'); });
/** * Register an entity type and subtype to be eligible for notifications * * @param string $entity_type The type of entity * @param string $object_subtype Its subtype * @param string $language_name Its localized notification string (eg "New blog post") * * @return void * @deprecated 1.9 Use elgg_register_notification_event(). The 3rd argument was used * as the subject line in a notification. As of Elgg 1.9, it is now set by a callback * for a plugin hook. See the documentation at the top of the notifications library * titled "Adding a New Notification Event" for more details. */ function register_notification_object($entity_type, $object_subtype, $language_name) { elgg_deprecated_notice(__FUNCTION__ . ' is deprecated by elgg_register_notification_event()', 1.9); elgg_register_notification_event($entity_type, $object_subtype); _elgg_services()->notifications->setDeprecatedNotificationSubject($entity_type, $object_subtype, $language_name); }
/** * Tidypics plugin initialization */ function tidypics_init() { // Register libraries $base_dir = elgg_get_plugins_path() . 'tidypics/lib'; elgg_register_library('tidypics:core', "{$base_dir}/tidypics.php"); elgg_register_library('tidypics:upload', "{$base_dir}/upload.php"); elgg_register_library('tidypics:resize', "{$base_dir}/resize.php"); elgg_register_library('tidypics:exif', "{$base_dir}/exif.php"); elgg_load_library('tidypics:core'); // Register an ajax view that allows selection of album to upload images to elgg_register_ajax_view('photos/selectalbum'); // Register an ajax view for the broken images cleanup routine elgg_register_ajax_view('photos/broken_images_delete_log'); // Set up site menu $site_menu_links_to = elgg_get_plugin_setting('site_menu_link', 'tidypics'); if ($site_menu_links_to == 'albums') { elgg_register_menu_item('site', array('name' => 'photos', 'href' => 'photos/all', 'text' => elgg_echo('photos'))); } else { elgg_register_menu_item('site', array('name' => 'photos', 'href' => 'photos/siteimagesall', 'text' => elgg_echo('photos'))); } // Register a page handler so we can have nice URLs elgg_register_page_handler('photos', 'tidypics_page_handler'); // Extend CSS elgg_extend_view('css/elgg', 'photos/css'); elgg_extend_view('css/admin', 'photos/css'); // Register the JavaScript libs elgg_register_js('tidypics:slideshow', elgg_get_simplecache_url('tidypics/js/PicLensLite/piclens.js'), 'head'); elgg_register_js('jquery.plupload-tp', elgg_get_simplecache_url('tidypics/js/plupload/plupload.full.min.js'), 'footer'); elgg_register_js('jquery.plupload.ui-tp', elgg_get_simplecache_url('tidypics/js/plupload/jquery.ui.plupload/jquery.ui.plupload.min.js'), 'footer'); $plupload_language = get_plugload_language(); elgg_register_js('jquery.plupload.ui.lang-tp', elgg_get_simplecache_url('tidypics/js/plupload/i18n/' . $plupload_language . '.js'), 'footer'); elgg_register_css('jquery.plupload.jqueryui-theme', elgg_get_simplecache_url('tidypics/css/jqueryui-theme.css')); elgg_register_css('jquery.plupload.ui', elgg_get_simplecache_url('tidypics/css/plupload/css/jquery.ui.plupload.css')); // Add photos link to owner block/hover menus elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'tidypics_owner_block_menu'); // Add admin menu item elgg_register_admin_menu_item('configure', 'photos', 'settings'); // Register for search elgg_register_entity_type('object', 'image'); elgg_register_entity_type('object', 'album'); elgg_register_entity_type('object', 'tidypics_batch'); // Override search for tidypics_batch subtype to not return any results elgg_register_plugin_hook_handler('search', 'object:tidypics_batch', 'tidypics_batch_no_search_results'); // Register for the entity menu elgg_register_plugin_hook_handler('register', 'menu:entity', 'tidypics_entity_menu_setup'); // Register group options add_group_tool_option('photos', elgg_echo('tidypics:enablephotos'), true); elgg_extend_view('groups/tool_latest', 'photos/group_module'); add_group_tool_option('tp_images', elgg_echo('tidypics:enable_group_images'), true); elgg_extend_view('groups/tool_latest', 'photos/group_tp_images_module'); // Register widgets elgg_register_widget_type('album_view', elgg_echo("tidypics:widget:albums"), elgg_echo("tidypics:widget:album_descr"), array('profile')); elgg_register_widget_type('latest_photos', elgg_echo("tidypics:widget:latest"), elgg_echo("tidypics:widget:latest_descr"), array('profile')); if (elgg_is_active_plugin('widget_manager')) { //add index widgets for Widget Manager plugin elgg_register_widget_type('index_latest_photos', elgg_echo("tidypics:mostrecent"), elgg_echo('tidypics:mostrecent:description'), array('index')); elgg_register_widget_type('index_latest_albums', elgg_echo("tidypics:albums_mostrecent"), elgg_echo('tidypics:albums_mostrecent:description'), array('index')); //add groups widgets for Widget Manager plugin elgg_register_widget_type('groups_latest_photos', elgg_echo("tidypics:mostrecent"), elgg_echo('tidypics:mostrecent:description'), array('groups')); elgg_register_widget_type('groups_latest_albums', elgg_echo("tidypics:albums_mostrecent"), elgg_echo('tidypics:albums_mostrecent:description'), array('groups')); //register title urls for widgets elgg_register_plugin_hook_handler("entity:url", "object", "tidypics_widget_urls"); // handle the availability of the Tidypics group widgets elgg_register_plugin_hook_handler("group_tool_widgets", "widget_manager", "tidypics_tool_widgets_handler"); } // RSS extensions for embedded media elgg_extend_view('extensions/xmlns', 'extensions/photos/xmlns'); // allow group members add photos to group albums elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'tidypics_group_permission_override'); elgg_register_plugin_hook_handler('permissions_check:metadata', 'object', 'tidypics_group_permission_override'); // notifications elgg_register_notification_event('object', 'album', array('album_first', 'album_more')); elgg_register_plugin_hook_handler('prepare', 'notification:album_first:object:album', 'tidypics_notify_message'); elgg_register_plugin_hook_handler('prepare', 'notification:album_more:object:album', 'tidypics_notify_message'); // allow people in a walled garden to use flash uploader elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'tidypics_walled_garden_override'); // override the default url to view a tidypics_batch object elgg_register_plugin_hook_handler('entity:url', 'object', 'tidypics_batch_url_handler'); // custom layout for comments on tidypics river entries elgg_register_plugin_hook_handler('creating', 'river', 'tidypics_comments_handler'); // allow for liking of albums and images elgg_register_plugin_hook_handler('likes:is_likable', 'object:album', 'Elgg\\Values::getTrue'); elgg_register_plugin_hook_handler('likes:is_likable', 'object:image', 'Elgg\\Values::getTrue'); // Register actions $base_dir = elgg_get_plugins_path() . 'tidypics/actions/photos'; elgg_register_action("photos/delete", "{$base_dir}/delete.php"); elgg_register_action("photos/album/save", "{$base_dir}/album/save.php"); elgg_register_action("photos/album/sort", "{$base_dir}/album/sort.php"); elgg_register_action("photos/album/set_cover", "{$base_dir}/album/set_cover.php"); elgg_register_action("photos/image/upload", "{$base_dir}/image/upload.php"); elgg_register_action("photos/image/save", "{$base_dir}/image/save.php"); elgg_register_action("photos/image/ajax_upload", "{$base_dir}/image/ajax_upload.php", 'logged_in'); elgg_register_action("photos/image/ajax_upload_complete", "{$base_dir}/image/ajax_upload_complete.php", 'logged_in'); elgg_register_action("photos/image/tag", "{$base_dir}/image/tag.php"); elgg_register_action("photos/image/untag", "{$base_dir}/image/untag.php"); elgg_register_action("photos/batch/edit", "{$base_dir}/batch/edit.php"); elgg_register_action("photos/admin/settings", "{$base_dir}/admin/settings.php", 'admin'); elgg_register_action("photos/admin/create_thumbnails", "{$base_dir}/admin/create_thumbnails.php", 'admin'); elgg_register_action("photos/admin/resize_thumbnails", "{$base_dir}/admin/resize_thumbnails.php", 'admin'); elgg_register_action("photos/admin/delete_image", "{$base_dir}/admin/delete_image.php", 'admin'); elgg_register_action("photos/admin/upgrade", "{$base_dir}/admin/upgrade.php", 'admin'); elgg_register_action("photos/admin/broken_images", "{$base_dir}/admin/broken_images.php", 'admin'); elgg_register_action('photos/image/selectalbum', "{$base_dir}/image/selectalbum.php"); }
$container_guid = (int) get_input('container_guid', 0); $parent_guid = get_input('parent_guid'); set_time_limit(0); $forward_url = REFERER; if (empty($container_guid) || !get_uploaded_file('zip_file')) { register_error(elgg_echo('file:cannotload')); forward(REFERER); } $extension_array = explode('.', $_FILES['zip_file']['name']); if (strtolower(end($extension_array)) !== 'zip') { register_error(elgg_echo('file:uploadfailed')); forward(REFERER); } $file = $_FILES['zip_file']; // disable notifications of new objects elgg_unregister_notification_event('object', 'file'); if (file_tools_unzip($file, $container_guid, $parent_guid)) { system_message(elgg_echo('file:saved')); $container = get_entity($container_guid); if ($container instanceof ElggGroup) { $forward_url = "file/group/{$container->getGUID()}/all#{$parent_guid}"; } else { $forward_url = "file/owner/{$container->username}#{$parent_guid}"; } } else { register_error(elgg_echo('file:uploadfailed')); } // reenable notifications of new objects elgg_register_notification_event('object', 'file'); forward($forward_url);
/** * Initialize the community plugin repository plugin */ function init() { elgg_register_library('plugins:upgrades', __DIR__ . '/lib/upgrades.php'); register_js(); // Set up menu for logged in users elgg_register_menu_item('site', array('href' => "/plugins", 'name' => 'plugins', 'text' => elgg_echo('plugins'))); elgg_register_menu_item('site', array('href' => '/plugins/category/themes', 'name' => 'themes', 'text' => elgg_echo('plugins:type:theme'))); /** * Extend views */ // Extend CSS and JS elgg_extend_view('elgg.css', 'plugins/css'); elgg_extend_view('css/admin', 'plugins/admin_css'); // Extend hover-over and profile menu elgg_extend_view('profile/menu/links', 'plugins/profile_menu'); elgg_extend_view('groups/left_column', 'plugins/groupprofile_files'); // Register a page handler, so we can have nice URLs elgg_register_page_handler('plugins', __NAMESPACE__ . '\\plugins_page_handler'); // Tell core to send notifications when new projects and releases are created elgg_register_notification_event('object', 'plugin_project', array('create')); elgg_register_notification_event('object', 'plugin_release', array('create')); /** * Register Hooks */ // The notifications for projects and releases are almost identical so we can use the same handler for both elgg_register_plugin_hook_handler('prepare', 'notification:create:object:plugin_project', __NAMESPACE__ . '\\prepare_notification'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:plugin_release', __NAMESPACE__ . '\\prepare_notification'); // Releases are contained by a project so we need to get the notification subscriptions manually elgg_register_plugin_hook_handler('get', 'subscriptions', __NAMESPACE__ . '\\get_release_subscriptions'); // Make sure Releases are editable elgg_register_plugin_hook_handler('permissions_check', 'object', __NAMESPACE__ . '\\release_permissions_check'); // make projects non-commentable in the river elgg_register_plugin_hook_handler('permissions_check:comment', 'object', __NAMESPACE__ . '\\project_comments'); // manage owner block menu elgg_register_plugin_hook_handler('register', 'menu:owner_block', __NAMESPACE__ . '\\owner_block_menu'); // register url handlers for the 2 object subtypes elgg_register_plugin_hook_handler('entity:url', 'object', __NAMESPACE__ . '\\release_url_handler'); elgg_register_plugin_hook_handler('entity:url', 'object', __NAMESPACE__ . '\\project_url_handler'); elgg_register_plugin_hook_handler('register', 'menu:annotation', __NAMESPACE__ . '\\ownership_request_menu'); // Special hook for searching against metadata (category) elgg_register_plugin_hook_handler('search', 'object:plugin_project', __NAMESPACE__ . '\\search_hook'); elgg_register_plugin_hook_handler('cron', 'daily', __NAMESPACE__ . '\\update_download_counts'); /** * Register Events */ elgg_register_event_handler('pagesetup', 'system', __NAMESPACE__ . '\\add_submenus'); elgg_register_event_handler('upgrade', 'system', __NAMESPACE__ . '\\upgrades'); elgg_register_event_handler('create', 'object', __NAMESPACE__ . '\\release_comment_notification'); elgg_register_event_handler('update', 'object', __NAMESPACE__ . '\\project_update'); //register a widget elgg_register_widget_type('plugins', elgg_echo('plugins'), elgg_echo('plugins'), array('profile')); // Only projects should show up in search elgg_register_entity_type('object', 'plugin_project'); // Elgg versions (The forms expect this to be an associative array) elgg_set_config('elgg_versions', array('2.0' => '2.0', '1.12' => '1.12', '1.11' => '1.11', '1.10' => '1.10', '1.9' => '1.9', '1.8' => '1.8', '1.7' => '1.7', '1.6' => '1.6', '1.5' => '1.5', '1.2' => '1.2', '1.0' => '1.0')); // GPL-compatible licenses elgg_set_config('gpllicenses', array('none' => 'No license selected', 'gpl2' => 'GNU General Public License (GPL) version 2', 'lgpl2.1' => 'GNU Lesser General Public License (LGPL) version 2.1', 'berkeleydb' => 'Berkeley Database License (aka the Sleepycat Software Product License)', 'mbsd' => 'Modified BSD license', 'cbsd' => 'The Clear BSD License', 'expat' => 'Expat (MIT) License', 'freebsd' => 'FreeBSD license', 'intel' => 'Intel Open Source License', 'openbsd' => 'ISC (OpenBSD) License', 'ncsa' => 'NCSA/University of Illinois Open Source License', 'w3c' => 'W3C Software Notice and License', 'x11' => 'X11 License', 'zope' => 'Zope Public License, versions 2.0 and 2.1')); // Defined plugin categories elgg_set_config('plugincats', array('admin' => 'Site admin', 'user' => 'User admin', 'authentication' => 'Authentication', 'tools' => 'Tools', 'spam' => 'Spam', 'communication' => 'Communication', 'events' => 'Events', 'media' => 'Media', 'photos' => 'Photos and Images', 'tpintegrations' => 'Third Party integrations', 'clients' => 'Clients', 'widgets' => 'Widgets', 'games' => 'Games', 'ecommerce' => 'eCommerce', 'languages' => 'Language packs', 'themes' => 'Themes', 'misc' => 'Misc', 'uncategorized' => 'Uncategorized')); /** * Register actions */ $action_base = dirname(__FILE__) . "/actions/plugins"; elgg_register_action("plugins/create_project", "{$action_base}/create_project.php"); elgg_register_action("plugins/create_release", "{$action_base}/create_release.php"); elgg_register_action("plugins/save_project", "{$action_base}/save_project.php"); elgg_register_action("plugins/save_release", "{$action_base}/save_release.php"); elgg_register_action("plugins/delete_project", "{$action_base}/delete_project.php"); elgg_register_action("plugins/delete_release", "{$action_base}/delete_release.php"); elgg_register_action("plugins/delete_project_image", "{$action_base}/delete_project_image.php"); elgg_register_action("plugins/recommend", "{$action_base}/recommend.php"); elgg_register_action("plugins/add_contributors", "{$action_base}/add_contributors.php"); elgg_register_action("plugins/delete_contributor", "{$action_base}/delete_contributor.php"); elgg_register_action("plugins/request_ownership", "{$action_base}/request_ownership.php"); elgg_register_action("plugins/admin/upgrade", "{$action_base}/admin/upgrade.php", 'admin'); elgg_register_action("plugins/admin/combine", "{$action_base}/admin/combine.php", 'admin'); elgg_register_action("plugins/admin/normalize", "{$action_base}/admin/normalize.php", 'admin'); elgg_register_action("plugins/admin/search", "{$action_base}/admin/search.php", 'admin'); elgg_register_action("plugins/admin/transfer", "{$action_base}/admin/transfer.php", 'admin'); elgg_register_tag_metadata_name('plugin_type'); elgg_register_ajax_view('object/plugin_project/release_table'); }
/** * Initialize the discussion component */ function discussion_init() { elgg_register_library('elgg:discussion', elgg_get_plugins_path() . 'groups/lib/discussion.php'); elgg_register_page_handler('discussion', 'discussion_page_handler'); elgg_register_plugin_hook_handler('entity:url', 'object', 'discussion_set_topic_url'); // commenting not allowed on discussion topics (use a different annotation) elgg_register_plugin_hook_handler('permissions_check:comment', 'object', 'discussion_comment_override'); elgg_register_plugin_hook_handler('permissions_check', 'object', 'discussion_can_edit_reply'); // discussion reply menu elgg_register_plugin_hook_handler('register', 'menu:entity', 'discussion_reply_menu_setup'); // allow non-owners to add replies to group discussion elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'discussion_reply_container_permissions_override'); elgg_register_event_handler('update', 'object', 'discussion_update_reply_access_ids'); $action_base = elgg_get_plugins_path() . 'groups/actions/discussion'; elgg_register_action('discussion/save', "{$action_base}/save.php"); elgg_register_action('discussion/delete', "{$action_base}/delete.php"); elgg_register_action('discussion/reply/save', "{$action_base}/reply/save.php"); elgg_register_action('discussion/reply/delete', "{$action_base}/reply/delete.php"); // add link to owner block elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'discussion_owner_block_menu'); // Register for search. elgg_register_entity_type('object', 'groupforumtopic'); // because replies are not comments, need of our menu item elgg_register_plugin_hook_handler('register', 'menu:river', 'discussion_add_to_river_menu'); // add the forum tool option add_group_tool_option('forum', elgg_echo('groups:enableforum'), true); elgg_extend_view('groups/tool_latest', 'discussion/group_module'); $discussion_js_path = elgg_get_site_url() . 'mod/groups/views/default/js/discussion/'; elgg_register_js('elgg.discussion', $discussion_js_path . 'discussion.js'); elgg_register_ajax_view('ajax/discussion/reply/edit'); // notifications elgg_register_plugin_hook_handler('get', 'subscriptions', 'discussion_get_subscriptions'); elgg_register_notification_event('object', 'groupforumtopic'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:groupforumtopic', 'discussion_prepare_notification'); elgg_register_notification_event('object', 'discussion_reply'); elgg_register_plugin_hook_handler('prepare', 'notification:create:object:discussion_reply', 'discussion_prepare_reply_notification'); elgg_register_plugin_hook_handler('email', 'system', 'discussion_notification_email_subject'); }