Exemple #1
0
/**
 * 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');
}
Exemple #2
0
/**
 * 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');
}
Exemple #3
0
/**
 * 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');
}
Exemple #4
0
/**
 * 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');
}
Exemple #5
0
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;
}
Exemple #6
0
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");
}
Exemple #7
0
/**
 * 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");
}
Exemple #8
0
/**
 * 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');
}
Exemple #9
0
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');
}
Exemple #10
0
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');
}
Exemple #11
0
/**
 * 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');
}
Exemple #12
0
/**
 * 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');
}
Exemple #13
0
/**
 * 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');
}
Exemple #14
0
/**
 * 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);
    }
}
Exemple #15
0
/**
 * 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');
}
Exemple #16
0
/**
 * 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');
}
Exemple #17
0
/**
 * 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');
}
Exemple #18
0
/**
 * 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'));
}
Exemple #20
0
/**
 * 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");
}
Exemple #21
0
/**
 * 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');
}
Exemple #22
0
/**
 * 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');
}
Exemple #23
0
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'));
}
Exemple #24
0
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');
});
Exemple #26
0
/**
 * 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);
}
Exemple #27
0
/**
 * 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");
}
Exemple #28
0
$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);
Exemple #29
0
/**
 * 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');
}
Exemple #30
0
/**
 * 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');
}