Example #1
0
function staticsites_init()
{
    // Register backbone
    elgg_register_library('elgg:backbone', elgg_get_plugins_path() . 'staticsites/lib/backbone/backbone.php');
    elgg_load_library('elgg:backbone');
    elgg_register_library('elgg:staticsites', elgg_get_plugins_path() . 'staticsites/lib/staticsites.php');
    elgg_load_library('elgg:staticsites');
    // Include plugin vendors
    require elgg_get_plugins_path() . 'staticsites/vendor/autoload.php';
    // Static sites CSS
    elgg_extend_view('css/elgg', 'css/staticsites/css');
    // Register underscore with requirejs (and elgg)
    elgg_define_js('underscore', array('src' => 'mod/staticsites/vendors/underscore-min.js', 'location' => 'footer', 'exports' => '_'));
    // Register backbone with requirejs (and elgg)
    elgg_define_js('backbone', array('src' => 'mod/staticsites/vendors/backbone-min.js', 'location' => 'footer', 'deps' => array('jquery'), 'exports' => 'Backbone'));
    // Alloy Editor
    elgg_define_js('alloyEditor', array('src' => 'mod/staticsites/vendors/alloy-editor/alloy-editor-all-min.js', 'location' => 'footer', 'exports' => 'AlloyEditor'));
    // Alloy Editor CSS
    elgg_register_css('alloyeditor', 'mod/staticsites/vendors/alloy-editor/assets/alloy-editor-ocean-min.css');
    elgg_load_css('alloyeditor');
    // Set up group admin tools menu
    elgg_register_plugin_hook_handler('register', 'menu:groups:admin', 'staticsites_groups_admin_menu_setup');
    // Register main page handler
    elgg_register_page_handler('staticsites', 'staticsites_page_handler');
    // Actions
    $action_base = elgg_get_plugins_path() . "staticsites/actions/staticsites";
    elgg_register_action('staticsites/save_page', "{$action_base}/save_page.php");
    elgg_register_action('staticsites/delete_page', "{$action_base}/delete_page.php");
    // Whitelist template dir for ajax loads
    backbone_whitelist_templates(elgg_get_plugins_path() . 'staticsites/views/default/staticsites/templates/');
}
/**
 * External pages page handler
 *
 * @param array  $page    URL segements
 * @param string $handler Handler identifier
 * @return bool
 */
function expages_page_handler($page, $handler)
{
    if ($handler == 'expages') {
        expages_url_forwarder($page[1]);
    }
    $type = strtolower($handler);
    $title = elgg_echo("expages:{$type}");
    $header = elgg_view_title($title);
    $object = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1));
    if ($object) {
        $content .= elgg_view('output/longtext', array('value' => $object[0]->description));
    } else {
        $content .= elgg_echo("expages:notset");
    }
    $content = elgg_view('expages/wrapper', array('content' => $content));
    if (elgg_is_logged_in() || !elgg_get_config('walled_garden')) {
        $body = elgg_view_layout('one_column', array('title' => $title, 'content' => $content));
        echo elgg_view_page($title, $body);
    } else {
        elgg_load_css('elgg.walled_garden');
        $body = elgg_view_layout('walled_garden', array('content' => $header . $content));
        echo elgg_view_page($title, $body, 'walled_garden');
    }
    return true;
}
Example #3
0
/**
 * External pages page handler
 *
 * @param array  $page    URL segements
 * @param string $handler Handler identifier
 * @return bool
 */
function expages_page_handler($page, $handler)
{
    if ($handler == 'expages') {
        expages_url_forwarder($page[1]);
    }
    $type = strtolower($handler);
    $title = elgg_echo("expages:{$type}");
    $header = elgg_view_title($title);
    $object = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1));
    if ($object) {
        $content .= elgg_view('output/longtext', array('value' => $object[0]->description));
    } else {
        $content .= elgg_echo("expages:notset");
    }
    $content = elgg_view('expages/wrapper', array('content' => $content));
    if (elgg_is_admin_logged_in()) {
        elgg_register_menu_item('title', array('name' => 'edit', 'text' => elgg_echo('edit'), 'href' => "admin/appearance/expages?type={$type}", 'link_class' => 'elgg-button elgg-button-action'));
    }
    if (elgg_is_logged_in() || !elgg_get_config('walled_garden')) {
        $body = elgg_view_layout('one_column', array('title' => $title, 'content' => $content));
        echo elgg_view_page($title, $body);
    } else {
        elgg_load_css('elgg.walled_garden');
        $body = elgg_view_layout('walled_garden', array('content' => $header . $content));
        echo elgg_view_page($title, $body, 'walled_garden');
    }
    return true;
}
Example #4
0
function twitter_bootswatch_init()
{
    $bootswatch_style = elgg_get_plugin_setting('bootswatch_style', 'twitter_bootswatch');
    switch ($bootswatch_style) {
        case 'amelia':
        case 'cerulean':
        case 'cosmo':
        case 'cyborg':
        case 'flatty':
        case 'journal':
        case 'readable':
        case 'simplex':
        case 'slate':
        case 'spacelab':
        case 'spruce':
        case 'superhero':
        case 'united':
            break;
        default:
            $bootswatch_style = 'cyborg';
    }
    // Unextend the default bootstrap override css
    elgg_unextend_view('css/elgg', 'twitter_bootstrap/css');
    // Extend system CSS with our own styles
    elgg_extend_view('css/elgg', 'twitter_bootswatch/css');
    // united bootstrap
    $bootstrap_css = 'mod/twitter_bootswatch/vendors/bootstrap-' . $bootswatch_style . '.min.css';
    elgg_register_css('twitter_bootswatch_css', $bootstrap_css, 5);
    //unload default bootstrap css and load new one
    elgg_unregister_css('bootstrap_css');
    if (get_context() != 'admin') {
        elgg_load_css('twitter_bootswatch_css');
    }
}
Example #5
0
/**
 * Initialize the theme
 *
 * @return void
 */
function theme_eersel_init()
{
    elgg_register_css('font-awesome', 'mod/theme_eersel/vendors/font-awesome-4.3.0/css/font-awesome.min.css');
    elgg_load_css('font-awesome');
    // extend views
    elgg_extend_view("js/elgg", "js/theme_eersel");
    elgg_extend_view("css/elgg", "css/theme_eersel");
    elgg_extend_view("css/elgg", "css/theme_eersel_images");
    elgg_extend_view("page/layouts/widgets", "theme_eersel/widgets_fix");
    elgg_extend_view('icon/default', 'theme_eersel/group/icon', 400);
    elgg_unextend_view("page/elements/header", "search/header");
    elgg_unextend_view("page/elements/owner_block/extend", "group_tools/owner_block");
    // page handlers
    elgg_register_page_handler("theme_eersel", "theme_eersel_page_handler");
    elgg_register_page_handler("profile", "theme_eersel_profile_page_handler");
    elgg_register_js('jquery.flexslider', 'mod/theme_eersel/vendors/jquery.flexslider/jquery.flexslider-min.js');
    elgg_load_js('jquery.flexslider');
    // register widgets
    elgg_register_widget_type("profile_owner_block", elgg_echo("theme_eersel:widgets:profile_owner_block:title"), elgg_echo("theme_eersel:widgets:profile_owner_block:description"), "profile");
    elgg_register_widget_type("index_photos", elgg_echo("theme_eersel:widgets:index_photos:title"), elgg_echo("theme_eersel:widgets:index_photos:description"), "index");
    elgg_register_widget_type("index_sidebar", elgg_echo("theme_eersel:widgets:index_sidebar:title"), elgg_echo("theme_eersel:widgets:index_sidebar:description"), "index");
    // register plugin hooks
    elgg_register_plugin_hook_handler("register", "menu:topbar", "theme_eersel_register_topbar_menu_handler");
    elgg_register_plugin_hook_handler("prepare", "menu:owner_block", "theme_eersel_prepare_owner_block_menu_handler");
    elgg_register_plugin_hook_handler('route', 'groups', 'theme_eersel_route_groups_handler');
    // register events
    elgg_register_event_handler('pagesetup', 'system', 'theme_eersel_pagesetup');
    // register admin menu item
    elgg_register_admin_menu_item("configure", "theme_eersel", "appearance");
    // register actions
    elgg_register_action("theme_eersel/slider_upload", dirname(__FILE__) . "/actions/slider_upload.php", "admin");
    elgg_register_action("theme_eersel/links", dirname(__FILE__) . "/actions/links.php", "admin");
}
Example #6
0
/**
 * Initialize the plugin
 *
 * @return void
 */
function notifier_init()
{
    notifier_set_view_listener();
    // Add hidden popup module to topbar
    elgg_extend_view('page/elements/topbar', 'notifier/popup');
    elgg_require_js('notifier/notifier');
    // Must always have lightbox loaded because views needing it come via AJAX
    elgg_load_js('lightbox');
    elgg_load_css('lightbox');
    elgg_register_page_handler('notifier', 'notifier_page_handler');
    // Add css
    elgg_extend_view('elgg.css', 'notifier/notifier.css');
    elgg_register_notification_method('notifier');
    elgg_register_plugin_hook_handler('send', 'notification:notifier', 'notifier_notification_send');
    elgg_register_plugin_hook_handler('route', 'friendsof', 'notifier_read_friends_notification');
    elgg_register_event_handler('create', 'relationship', 'notifier_relationship_notifications');
    elgg_register_event_handler('delete', 'relationship', 'notifier_read_group_invitation_notification');
    // Hook handler for cron that removes old messages
    elgg_register_plugin_hook_handler('cron', 'daily', 'notifier_cron');
    elgg_register_plugin_hook_handler('register', 'menu:topbar', 'notifier_topbar_menu_setup');
    elgg_register_event_handler('create', 'user', 'notifier_enable_for_new_user');
    elgg_register_event_handler('join', 'group', 'notifier_enable_for_new_group_member');
    $action_path = elgg_get_plugins_path() . 'notifier/actions/notifier/';
    elgg_register_action('notifier/dismiss', $action_path . 'dismiss.php');
    elgg_register_action('notifier/clear', $action_path . 'clear.php');
    elgg_register_action('notifier/delete', $action_path . 'delete.php');
}
Example #7
0
function modules_init()
{
    // Register and load library
    elgg_register_library('ajaxmodule', elgg_get_plugins_path() . 'modules/lib/ajaxmodule.php');
    elgg_load_library('ajaxmodule');
    // Ajax module page handler
    elgg_register_page_handler('ajaxmodule', 'ajaxmodule_page_handler');
    // Register view hook handler
    elgg_register_plugin_hook_handler('view', 'all', 'ajaxmodule_view_hook_handler');
    // Register icon handlers
    elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'simpleicon_hook_handler', 600);
    // Register JS
    $ajaxmodule_js = elgg_get_simplecache_url('js', 'modules/ajaxmodule');
    elgg_register_simplecache_view('js/modules/ajaxmodule');
    elgg_register_js('elgg.modules.ajaxmodule', $ajaxmodule_js);
    // Register JS
    $genericmodule_js = elgg_get_simplecache_url('js', 'modules/genericmodule');
    elgg_register_simplecache_view('js/modules/genericmodule');
    elgg_register_js('elgg.modules.genericmodule', $genericmodule_js);
    // Register CSS
    $m_css = elgg_get_simplecache_url('css', 'modules/css');
    elgg_register_simplecache_view('css/modules/css');
    elgg_register_css('elgg.modules', $m_css);
    // Load JS/CSS
    elgg_load_js('elgg.modules.ajaxmodule');
    elgg_load_js('elgg.modules.genericmodule');
    elgg_load_css('lightbox');
    elgg_load_js('lightbox');
    elgg_load_css('elgg.modules');
}
Example #8
0
/**
 * Initialize the plugin.
 */
function tour_init()
{
    $js_lib = elgg_get_plugin_setting('js_library', 'tour');
    if ($js_lib == 'joyride') {
        elgg_register_css('joyride', '/mod/tour/vendors/joyride/joyride-2.1.css');
        elgg_load_css('joyride');
        elgg_define_js('joyride', array('src' => '/mod/tour/vendors/joyride/jquery.joyride-2.1.js', 'exports' => 'joyride'));
    } else {
        elgg_register_css('hopscotch', '/mod/tour/vendors/hopscotch/css/hopscotch.min.css');
        elgg_load_css('hopscotch');
        elgg_define_js('hopscotch', array('src' => '/mod/tour/vendors/hopscotch/hopscotch.min.js', 'exports' => 'hopscotch'));
    }
    elgg_require_js('elgg/tour/display');
    //elgg_require_js('elgg/tour/edit');
    elgg_register_ajax_view('ajax/tour_stop/save');
    elgg_extend_view('page/elements/footer', 'tour/outline');
    elgg_extend_view('css/elgg', 'css/tour');
    elgg_extend_view('css/admin', 'css/tour_admin');
    elgg_register_action('tour_page/save', __DIR__ . '/actions/tour_page/save.php', 'admin');
    elgg_register_action('tour_page/reorder', __DIR__ . '/actions/tour_page/reorder.php', 'admin');
    elgg_register_action('tour_page/delete', __DIR__ . '/actions/tour_page/delete.php', 'admin');
    elgg_register_action('tour_stop/save', __DIR__ . '/actions/tour_stop/save.php', 'admin');
    elgg_register_action('tour_stop/delete', __DIR__ . '/actions/tour_stop/delete.php', 'admin');
    elgg_register_page_handler('tour', 'tour_page_handler');
    elgg_register_page_handler('tour_stop', 'tour_page_handler');
    // For convenience
    elgg_register_admin_menu_item('administer', 'tour', 'administer_utilities');
    elgg_register_menu_item('topbar', array('name' => 'tour', 'href' => '', 'text' => elgg_echo('tour:start'), 'id' => 'tour-start', 'section' => 'alt', 'data-library' => $js_lib));
    elgg_register_plugin_hook_handler('register', 'menu:entity', array('Tour\\Page\\EntityMenu', 'setUp'));
    elgg_register_plugin_hook_handler('register', 'menu:entity', array('Tour\\Stop\\EntityMenu', 'setUp'));
    elgg_register_viewtype('json');
}
Example #9
0
/**
 * Initialize the projects plugin.
 *
 */
function surveys_init()
{
    // register a library of helper functions
    elgg_register_library('surveys', elgg_get_plugins_path() . 'surveys/lib/surveys.php');
    elgg_load_library('surveys');
    //register css
    $css_url = 'mod/surveys/css/styles.css';
    elgg_register_css('surveysCss', $css_url);
    elgg_load_css('surveysCss');
    // register a project handler, so we can have nice URLs
    elgg_register_page_handler('surveys', 'surveys_page_handler');
    // register a url handler
    elgg_register_entity_url_handler('object', 'survey', 'surveys_url');
    // register entity type for search
    elgg_register_entity_type('object', 'survey');
    // register some actions
    $action_base = elgg_get_plugins_path() . 'surveys/actions';
    elgg_register_action("surveys/submit", "{$action_base}/submit.php");
    elgg_register_action("surveys/delete", "{$action_base}/delete.php");
    elgg_register_action("surveys/edit", "{$action_base}/edit.php");
    // Language short codes must be of the form "projects:key"
    // where key is the array key below
    elgg_set_config('surveys', array('hear[]' => 'custom_checkbox', 'reason[]' => 'custom_checkbox', 'overall' => 'dropdown', 'speakers' => 'dropdown', 'facilitators' => 'dropdown', 'topics' => 'dropdown', 'structure' => 'dropdown', 'relevance' => 'dropdown', 'venue' => 'dropdown', 'overall_length' => 'dropdown', 'presentations' => 'dropdown', 'breaks' => 'dropdown', 'networking' => 'dropdown', 'groups' => 'dropdown', 'plenaries' => 'dropdown', 'worked' => 'plaintext', 'not_useful' => 'plaintext', 'useful' => 'plaintext', 'willAttend' => 'radio', 'attendExplain' => 'plaintext', 'help' => 'radio', 'helpExplain' => 'plaintext', 'recommend' => 'radio', 'otherDeparts' => 'radio', 'otherDepartsExplain' => 'plaintext', 'usefulDev' => 'radio', 'usefulDevExplain' => 'plaintext', 'suggestion' => 'plaintext', 'final1' => 'radio', 'final2' => 'radio', 'final3' => 'radio', 'final4' => 'radio', 'final5' => 'radio', 'final6' => 'radio', 'final7' => 'radio', 'final8[]' => 'custom_checkbox', 'final9' => 'plaintext', 'final10' => 'text'));
    // register the hook handler
    //elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'projects_owner_block_menu');
    // Access permissions
    //elgg_register_plugin_hook_handler('access:collections:write', 'all', 'projects_write_acl_plugin_hook');
    //elgg_register_plugin_hook_handler('access:collections:read', 'all', 'projects_read_acl_plugin_hook');
}
Example #10
0
function hydra_theme_init()
{
    elgg_unextend_view('page/elements/header', 'search/header');
    elgg_extend_view('page/elements/sidebar', 'search/header', 0);
    if (elgg_get_context() != "admin") {
        elgg_require_js("lorea_hydra/js");
    }
    $bower = elgg_get_site_url() . "mod/lorea_hydra/vendors/bower_components/";
    elgg_register_css("bootstrap", "{$bower}bootstrap/dist/css/bootstrap.css", 0);
    elgg_register_css("bootstrap-select", "{$bower}bootstrap-select/dist/css/bootstrap-select.min.css");
    elgg_register_css("jasny", "{$bower}jasny-bootstrap/dist/css/jasny-bootstrap.min.css");
    elgg_register_css("lorea_hydra", elgg_get_site_url() . "mod/hydra_theme/css/lorea_hydra.css", 10000);
    elgg_define_js("bootstrap", array("src" => "{$bower}bootstrap/dist/js/bootstrap.min.js"));
    //elgg_register_js("bootstrap", "{$bower}bootstrap/dist/js/bootstrap.min.js");
    elgg_register_js("bootstrap-select", "{$bower}bootstrap-select/dist/js/bootstrap-select.min.js");
    elgg_register_js("jasny", "{$bower}jasny-bootstrap/dist/js/jasny-bootstrap.min.js");
    elgg_register_js("lorea_hydra", elgg_get_site_url() . "mod/hydra_theme/css/lorea_hydra.css", 10000);
    if (elgg_get_context() != "admin") {
        elgg_load_css("bootstrap");
        elgg_load_css("bootstrap-select");
        elgg_load_css("lorea_hydra");
        elgg_load_css("jasny");
        elgg_load_js("bootstrap");
        elgg_load_js("jasny");
        elgg_load_js("bootstrap-select");
        elgg_load_js("lorea_hydra");
    }
}
Example #11
0
File: start.php Project: n8b/VMN
function elgg_clean_init()
{
    elgg_unextend_view('page/elements/header', 'search/header');
    elgg_extend_view('page/elements/sidebar', 'search/header', 0);
    if (elgg_get_context() != "admin") {
        elgg_require_js("elgg_clean/js");
    }
    elgg_register_event_handler('pagesetup', 'system', 'elgg_clean_pagesetup', 1000);
    elgg_register_plugin_hook_handler('head', 'page', 'elgg_clean_setup_head');
    $bower = elgg_get_site_url() . "mod/elgg_clean/vendors/bower_components/";
    elgg_register_css("bootstrap", "{$bower}bootstrap/dist/css/bootstrap.css", 0);
    elgg_register_css("open", "http://fonts.googleapis.com/css?family=Open+Sans:400,700,700italic,400italic");
    elgg_register_css("passion", "http://fonts.googleapis.com/css?family=Passion+One");
    elgg_register_css("elgg_clean", elgg_get_site_url() . "mod/elgg_clean/css/elgg_clean.css", 10000);
    elgg_register_css("font-awesome", "{$bower}fontawesome/css/font-awesome.min.css");
    elgg_register_css("bootstrap-select", "{$bower}bootstrap-select/dist/css/bootstrap-select.min.css");
    elgg_register_css("jasny", "{$bower}jasny-bootstrap/dist/css/jasny-bootstrap.min.css");
    elgg_register_css("fuelux", "{$bower}fuelux/dist/css/fuelux.min.css");
    elgg_register_css("agency", elgg_get_site_url() . "mod/elgg_clean/css/agency.css", 20000);
    elgg_register_css("home", elgg_get_site_url() . "mod/elgg_clean/css/home.css", 30000);
    elgg_register_js('respond', '{$bower}respond/src/respond.js');
    elgg_define_js("bootstrap", array("src" => "{$bower}bootstrap/dist/js/bootstrap.min.js"));
    elgg_register_js("bootstrap-select", "{$bower}bootstrap-select/dist/js/bootstrap-select.min.js");
    elgg_register_js("jasny", "{$bower}jasny-bootstrap/dist/js/jasny-bootstrap.min.js");
    elgg_register_js("agency", elgg_get_site_url() . "mod/elgg_clean/js/agency.js");
    elgg_register_js("cbpAnimatedHeader", elgg_get_site_url() . "mod/elgg_clean/js/cbpAnimatedHeader.js");
    elgg_register_js("classie", elgg_get_site_url() . "mod/elgg_clean/js/classie.js");
    elgg_register_js("contact_me", elgg_get_site_url() . "mod/elgg_clean/js/contact_me.js");
    elgg_register_js("scrollspy", "{$bower}scrollspy/jquery.scrollspy.js");
    elgg_register_js("parallax", "{$boder}jquery-parallax/scripts/jquery.parallax-1.13.js");
    elgg_register_js("scrollto", "{$bower}jquery-parallax/scripts/jquery.scrollTo-1.4.2-min.js");
    elgg_define_js('fuelux', array('src' => "{$bower}fuelux/dist/js/fuelux.min.js"));
    if (elgg_get_context() != "admin") {
        elgg_load_js('respond');
        elgg_load_js("bootstrap");
        elgg_load_js("jscolor");
        elgg_load_js("elgg_clean");
        elgg_load_js("bootstrap-select");
        elgg_load_js("jasny");
        elgg_load_js("agency");
        elgg_load_js("parallax");
        elgg_load_js("scrollto");
        elgg_require_js("fuelux");
        elgg_load_css("bootstrap");
        elgg_load_css("open");
        elgg_load_css("passion");
        elgg_load_css("font-awesome");
        elgg_load_css("bootstrap-select");
        elgg_load_css("elgg_clean");
        elgg_load_css("jasny");
        elgg_load_css("fuelux");
        elgg_load_css("agency");
    }
    // non-members do not get visible links to RSS feeds
    if (!elgg_is_logged_in()) {
        elgg_unregister_plugin_hook_handler('output:before', 'layout', 'elgg_views_add_rss_link');
    }
    elgg_register_action("elgg_clean/contact", elgg_get_plugins_path() . "elgg_clean/actions/contact.php", "public");
}
Example #12
0
function shortcodes_longtext_menu($hook, $type, $items, $vars)
{
    $url = 'shortcodes';
    $items[] = ElggMenuItem::factory(array('name' => 'shortcodes', 'href' => $url, 'text' => elgg_echo('shortcodes:link'), 'rel' => 'lightbox', 'link_class' => "elgg-longtext-control elgg-lightbox", 'priority' => 50));
    elgg_load_js('lightbox');
    elgg_load_css('lightbox');
    return $items;
}
Example #13
0
File: start.php Project: n8b/VMN
/**
 * Gets called when the Elgg system initializes
 *
 * @return void
 */
function fontawesome_init()
{
    // add CSS / JS
    elgg_extend_view("css/elements/forms", "css/fontawesome/forms");
    elgg_extend_view("css/admin", "css/fontawesome/admin");
    // register css
    elgg_register_css("fontawesome", "mod/fontawesome/vendor/fortawesome/font-awesome/css/font-awesome.min.css");
    elgg_load_css("fontawesome");
}
Example #14
0
function etherpad_page_handler($page, $handler)
{
    // 	elgg_load_library('elgg:pages');
    if ($handler == 'pages') {
        // add the jquery treeview files for navigation
        elgg_load_js('jquery-treeview');
        elgg_load_css('jquery-treeview');
    }
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo($handler), "{$handler}/all");
    $base_dir = elgg_get_plugins_path() . "etherpad/pages/{$handler}";
    $page_type = $page[0];
    switch ($page_type) {
        case 'owner':
            include "{$base_dir}/owner.php";
            break;
        case 'friends':
            include "{$base_dir}/friends.php";
            break;
        case 'view':
            set_input('guid', $page[1]);
            include "{$base_dir}/view.php";
            break;
        case 'add':
            set_input('guid', $page[1]);
            include "{$base_dir}/new.php";
            break;
        case 'edit':
            set_input('guid', $page[1]);
            include "{$base_dir}/edit.php";
            break;
        case 'group':
            include "{$base_dir}/owner.php";
            break;
        case 'history':
            set_input('guid', $page[1]);
            include "{$base_dir}/history.php";
            break;
        case 'revision':
            set_input('id', $page[1]);
            include "{$base_dir}/revision.php";
            break;
        case 'all':
            include "{$base_dir}/world.php";
            break;
        case "cross":
            include "{$base_dir}/cross.php";
            break;
        default:
            return false;
    }
    return true;
}
Example #15
0
/**
 * Add the embed menu item to the long text menu
 *
 * @param string $hook
 * @param string $type
 * @param array $items
 * @param array $vars
 * @return array
 */
function embed_longtext_menu($hook, $type, $items, $vars)
{
    if (elgg_get_context() == 'embed') {
        return $items;
    }
    $items[] = ElggMenuItem::factory(array('name' => 'embed', 'href' => "embed", 'text' => elgg_echo('embed:media'), 'rel' => 'lightbox', 'link_class' => "elgg-longtext-control elgg-lightbox embed-control embed-control-{$vars['id']}", 'priority' => 10));
    elgg_load_js('lightbox');
    elgg_load_css('lightbox');
    elgg_load_js('elgg.embed');
    return $items;
}
Example #16
0
/**
 * plugin init
 */
function init()
{
    elgg_extend_view('css/elgg', 'css/suggested_friends');
    elgg_register_page_handler('suggested_friends', __NAMESPACE__ . '\\suggested_friends_page_handler');
    elgg_register_widget_type('suggested_friends', elgg_echo('suggested_friends:people:you:may:know'), elgg_echo('suggested_friends:widget:description'), array('dashboard', 'profile'));
    elgg_register_event_handler('pagesetup', 'system', __NAMESPACE__ . '\\pagesetup');
    elgg_load_js('lightbox');
    elgg_load_css('lightbox');
    elgg_register_ajax_view('suggested_friends/mutual');
    elgg_register_ajax_view('suggested_friends/groups');
}
Example #17
0
function init()
{
    elgg_register_page_handler('elgg_copy', __NAMESPACE__ . '\\pagehandler');
    elgg_register_action('elgg_copy/reset', __DIR__ . "/actions/reset.php", 'admin');
    elgg_register_action('elgg_copy/regenerate_key', __DIR__ . '/actions/regenerate_key.php', 'admin');
    elgg_register_plugin_hook_handler('register', 'menu:admin_control_panel', __NAMESPACE__ . '\\control_panel');
    elgg_register_plugin_hook_handler('public_pages', 'walled_garden', __NAMESPACE__ . '\\public_pages');
    if (elgg_in_context('admin')) {
        elgg_load_js('lightbox');
        elgg_load_css('lightbox');
    }
}
Example #18
0
function zhaohu_mobile_theme_init()
{
    if (!elgg_in_context('admin')) {
        elgg_load_css('elgg.mobile');
        elgg_load_css('elgg.mobilize');
    }
    // need to register index handler
    elgg_register_plugin_hook_handler('index', 'system', 'zhaohu_index_page_handler');
    // add Settings link to owner block
    elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'zhaohu_user_hover_menu');
    elgg_register_event_handler('pagesetup', 'system', 'prepare_zhaohu_footer');
    elgg_register_page_handler('zhaohu_about', 'zhaohu_about_pages_handler');
}
Example #19
0
 /**
  * Change the name/function of the group join button
  *
  * @param string          $hook         the name of the hook
  * @param string          $type         the type of the hook
  * @param \ElggMenuItem[] $return_value current return value
  * @param array           $params       supplied params
  *
  * @return void|\ElggMenuItem[]
  */
 public static function groupMembership($hook, $type, $return_value, $params)
 {
     if (!elgg_in_context('groups')) {
         return;
     }
     $page_owner = elgg_get_page_owner_entity();
     $user = elgg_get_logged_in_user_entity();
     if (!$page_owner instanceof \ElggGroup || !$user instanceof \ElggUser) {
         return;
     }
     if (empty($return_value) || !is_array($return_value)) {
         return;
     }
     foreach ($return_value as $menu_item) {
         // group join button?
         if ($menu_item->getName() !== 'groups:joinrequest') {
             continue;
         }
         if (check_entity_relationship($user->getGUID(), 'membership_request', $page_owner->getGUID())) {
             // user already requested to join this group
             $menu_item->setText(elgg_echo('group_tools:joinrequest:already'));
             $menu_item->setTooltip(elgg_echo('group_tools:joinrequest:already:tooltip'));
             $menu_item->setHref("action/groups/killrequest?user_guid={$user->getGUID()}&group_guid={$page_owner->getGUID()}");
             $menu_item->is_action = true;
         } elseif (check_entity_relationship($page_owner->getGUID(), 'invited', $user->getGUID())) {
             // the user was invited, so let him/her join
             $menu_item->setName('groups:join');
             $menu_item->setText(elgg_echo('groups:join'));
             $menu_item->setTooltip(elgg_echo('group_tools:join:already:tooltip'));
             $menu_item->setHref("action/groups/join?user_guid={$user->getGUID()}&group_guid={$page_owner->getGUID()}");
             $menu_item->is_action = true;
         } elseif (group_tools_check_domain_based_group($page_owner, $user)) {
             // user has a matching email domain
             $menu_item->setName('groups:join');
             $menu_item->setText(elgg_echo('groups:join'));
             $menu_item->setTooltip(elgg_echo('group_tools:join:domain_based:tooltip'));
             $menu_item->setHref("action/groups/join?user_guid={$user->getGUID()}&group_guid={$page_owner->getGUID()}");
             $menu_item->is_action = true;
         } elseif (group_tools_join_motivation_required($page_owner)) {
             // a join motivation is required
             elgg_load_js('lightbox');
             elgg_load_css('lightbox');
             $menu_item->setHref("ajax/view/group_tools/forms/motivation?guid={$page_owner->getGUID()}");
             $menu_item->addLinkClass('elgg-lightbox');
             $opts = 'data-colorbox-opts';
             $menu_item->{$opts} = json_encode(['width' => '500px']);
         }
         break;
     }
     return $return_value;
 }
Example #20
0
function group_custom_layout_pagesetup()
{
    $group = elgg_get_page_owner_entity();
    if (!empty($group) && elgg_instanceof($group, "group")) {
        if (group_custom_layout_allow($group) && $group->canEdit()) {
            // add menu item for group admins to edit layout
            elgg_register_menu_item("page", array("name" => "group_layout", "text" => elgg_echo("group_custom_layout:edit"), "href" => "group_custom_layout/" . $group->getGUID(), "context" => "group_profile"));
        }
        if ($layout = group_custom_layout_get_layout($group)) {
            elgg_register_css("custom_group_layout", "group_custom_layout/group_css/" . $layout->getGUID() . "/" . $layout->time_updated . ".css");
            elgg_load_css("custom_group_layout");
        }
    }
}
Example #21
0
File: start.php Project: rasul/Elgg
/**
 * Dispatcher for pages.
 * URLs take the form of
 *  All pages:        pages/all
 *  User's pages:     pages/owner/<username>
 *  Friends' pages:   pages/friends/<username>
 *  View page:        pages/view/<guid>/<title>
 *  New page:         pages/add/<guid> (container: user, group, parent)
 *  Edit page:        pages/edit/<guid>
 *  History of page:  pages/history/<guid>
 *  Revision of page: pages/revision/<id>
 *  Group pages:      pages/group/<guid>/owner
 *
 * Title is ignored
 *
 * @param array $page
 */
function pages_page_handler($page)
{
    elgg_load_library('elgg:pages');
    // add the jquery treeview files for navigation
    elgg_load_js('jquery-treeview');
    elgg_load_css('jquery-treeview');
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    elgg_push_breadcrumb(elgg_echo('pages'), 'pages/all');
    $base_dir = elgg_get_plugins_path() . 'pages/pages/pages';
    $page_type = $page[0];
    switch ($page_type) {
        case 'owner':
            include "{$base_dir}/owner.php";
            break;
        case 'friends':
            include "{$base_dir}/friends.php";
            break;
        case 'view':
            set_input('guid', $page[1]);
            include "{$base_dir}/view.php";
            break;
        case 'add':
            set_input('guid', $page[1]);
            include "{$base_dir}/new.php";
            break;
        case 'edit':
            set_input('guid', $page[1]);
            include "{$base_dir}/edit.php";
            break;
        case 'group':
            include "{$base_dir}/owner.php";
            break;
        case 'history':
            set_input('guid', $page[1]);
            include "{$base_dir}/history.php";
            break;
        case 'revision':
            set_input('id', $page[1]);
            include "{$base_dir}/revision.php";
            break;
        case 'all':
        default:
            include "{$base_dir}/world.php";
            break;
    }
    return;
}
Example #22
0
function hypeWall_extended_init()
{
    // register plugin library
    elgg_register_library('elgg:hypeWall_extended', elgg_get_plugins_path() . 'hypeWall_extended/lib/hypeWall_extended.php');
    // extend CSS
    elgg_extend_view('css/elgg', 'hypeWall_extended/css');
    elgg_register_css('hypeWall_extended_css', elgg_get_site_url() . 'mod/' . HYPEWALL_EXTENDED_ID . '/views/default/hypeWall_extended/hypeWall_extended.css');
    // load awesome fonts
    elgg_register_css('hypeWall_extended_awesome', elgg_get_site_url() . 'mod/' . HYPEWALL_EXTENDED_ID . '/vendors/font-awesome/css/font-awesome.css');
    elgg_load_css('hypeWall_extended_awesome');
    // extend JS
    elgg_extend_view('js/elgg', 'js/hypeWall_extended/set_css_options');
    // actions
    //elgg_register_action("wall/events", dirname(__FILE__) . "/../event_manager/actions/event/edit.php"); // obs
}
Example #23
0
/**
 * Initialize the plugin
 */
function hj_themex_init()
{
    if (elgg_in_context('admin')) {
        return;
    }
    elgg_unextend_view('page/elements/header', 'search/header');
    // Very annoying extention that needs to disappear
    elgg_unextend_view('css/elgg', 'custom_index/css');
    elgg_unextend_view('css/elgg', 'groups/css');
    elgg_unextend_view('css/elgg', 'messages/css');
    elgg_unextend_view('css/elgg', 'profile/css');
    elgg_unextend_view('css/elgg', 'search/css');
    elgg_extend_view('page/elements/head', 'page/elements/metatags');
    $jquery_ui = JQUERY_UI_THEME;
    elgg_register_css('jquery-ui', "/mod/hypeThemeX/stylesheets/jquery-ui-themes-1.10.3/themes/{$jquery_ui}/jquery-ui.min.css", 300);
    elgg_load_css('jquery-ui');
    $theme = ELGG_THEME;
    elgg_register_css('elgg.theme', "/mod/hypeThemeX/stylesheets/themes/{$theme}/theme.css", 400);
    elgg_load_css('elgg.theme');
    elgg_register_js('modernizr', '/mod/hypeThemeX/javascripts/vendor/custom.modernizr.js', 'head', 100);
    elgg_register_js('jquery', '/mod/hypeThemeX/javascripts/vendor/jquery-1.10.2.min.js', 'head', 125);
    elgg_register_js('jquery-migrate', '/mod/hypeThemeX/javascripts/vendor/jquery-migrate-1.2.1.min.js', 'head', 150);
    elgg_register_js('jquery-ui', '/mod/hypeThemeX/javascripts/vendor/jquery-ui-1.10.3.custom.min.js', 'head', 175);
    elgg_register_js('foundation', '/mod/hypeThemeX/javascripts/foundation/foundation.js', 'footer', 200);
    elgg_register_js('foundation.abide', '/mod/hypeThemeX/javascripts/foundation/foundation.abide.js', 'footer', 201);
    elgg_register_js('foundation.alerts', '/mod/hypeThemeX/javascripts/foundation/foundation.alerts.js', 'footer', 201);
    elgg_register_js('foundation.clearing', '/mod/hypeThemeX/javascripts/foundation/foundation.clearing.js', 'footer', 201);
    elgg_register_js('foundation.cookie', '/mod/hypeThemeX/javascripts/foundation/foundation.cookie.js', 'footer', 201);
    elgg_register_js('foundation.dropdown', '/mod/hypeThemeX/javascripts/foundation/foundation.dropdown.js', 'footer', 201);
    elgg_register_js('foundation.forms', '/mod/hypeThemeX/javascripts/foundation/foundation.forms.js', 'footer', 201);
    elgg_register_js('foundation.interchange', '/mod/hypeThemeX/javascripts/foundation/foundation.interchange.js', 'footer', 201);
    elgg_register_js('foundation.joyride', '/mod/hypeThemeX/javascripts/foundation/foundation.joyride.js', 'footer', 201);
    elgg_register_js('foundation.magellan', '/mod/hypeThemeX/javascripts/foundation/foundation.magellan.js', 'footer', 201);
    elgg_register_js('foundation.orbit', '/mod/hypeThemeX/javascripts/foundation/foundation.orbit.js', 'footer', 201);
    elgg_register_js('foundation.placeholder', '/mod/hypeThemeX/javascripts/foundation/foundation.placeholder.js', 'footer', 201);
    elgg_register_js('foundation.reveal', '/mod/hypeThemeX/javascripts/foundation/foundation.reveal.js', 'footer', 201);
    elgg_register_js('foundation.section', '/mod/hypeThemeX/javascripts/foundation/foundation.section.js', 'footer', 201);
    elgg_register_js('foundation.tooltips', '/mod/hypeThemeX/javascripts/foundation/foundation.tooltips.js', 'footer', 201);
    elgg_register_js('foundation.topbar', '/mod/hypeThemeX/javascripts/foundation/foundation.topbar.js', 'footer', 201);
    elgg_load_js('modernizr');
    elgg_load_js('jquery');
    // Foundation needs higher version of jquery than that in Elgg
    elgg_load_js('jquery-migrate');
    elgg_load_js('jquery-ui');
    elgg_load_js('foundation');
    // loads Foundation js
    elgg_extend_view('js/elgg', 'js/theme/init');
}
Example #24
0
 /**
  * Add a menu item in the long text inputs (like embed and tinymce)
  *
  * @param string $hook        name of the hook
  * @param string $type        type of the hook
  * @param array  $returnvalue Default menu items
  * @param array  $params      params for the hook
  *
  * @return array Menu items
  */
 public static function longtextRegister($hook, $type, $returnvalue, $params)
 {
     $id = elgg_extract('id', $params);
     if (strpos($id, 'newsletter-edit-content-') !== 0) {
         return;
     }
     if (!newsletter_embed_available()) {
         return;
     }
     $guid = str_replace('newsletter-edit-content-', '', $id);
     $returnvalue[] = \ElggMenuItem::factory(['name' => 'newsletter-embed-content', 'href' => "newsletter/embed/{$guid}", 'text' => elgg_echo('newsletter:menu:longtext:embed_content'), 'link_class' => 'elgg-longtext-control elgg-lightbox', 'priority' => 5]);
     elgg_load_js('lightbox');
     elgg_load_css('lightbox');
     elgg_require_js('newsletter/embed');
     return $returnvalue;
 }
Example #25
0
/**
 * Adds the menu items to the todolist
 *
 * @param string         $hook   name of the hook
 * @param string         $type   type of the hook
 * @param ElggMenuItem[] $return return value
 * @param array          $params hook parameters
 *
 * @return ElggMenuItem[]
 */
function todos_todolist_menu_register($hook, $type, $return, $params)
{
    if (empty($params) || !is_array($params)) {
        return $return;
    }
    $entity = elgg_extract('entity', $params);
    if (empty($entity) || !elgg_instanceof($entity, 'object', TodoList::SUBTYPE)) {
        return $return;
    }
    if ($entity->canEdit()) {
        elgg_load_js('lightbox');
        elgg_load_css('lightbox');
        $return[] = ElggMenuItem::factory(array('name' => 'edit', 'text' => elgg_echo('edit'), 'href' => "ajax/view/todos/todolist/form?guid={$entity->getGUID()}", 'link_class' => 'elgg-lightbox'));
        $return[] = ElggMenuItem::factory(array('name' => 'delete', 'text' => elgg_echo('delete'), 'href' => "action/todos/todolist/delete?guid={$entity->getGUID()}", 'confirm' => elgg_echo('deleteconfirm')));
    }
    return $return;
}
Example #26
0
/**
 * Gets called when the Elgg system initializes
 *
 * @return void
 */
function fontawesome_init()
{
    // add CSS / JS
    elgg_extend_view("css/elements/forms", "css/fontawesome/forms");
    elgg_extend_view("css/admin", "css/fontawesome/admin");
    // register css
    $root_path = elgg_get_root_path();
    $plugins_path = elgg_get_plugins_path();
    if (file_exists("{$root_path}/vendor/fortawesome/font-awesome/css/font-awesome.min.css")) {
        // this plugin was installed as a composer dependency
        elgg_register_css("fontawesome", "vendor/fortawesome/font-awesome/css/font-awesome.min.css");
    } elseif (file_exists("{$plugins_path}/fontawesome/vendor/fortawesome/font-awesome/css/font-awesome.min.css")) {
        // this plugin was installed stand-alone
        elgg_register_css("fontawesome", "mod/fontawesome/vendor/fortawesome/font-awesome/css/font-awesome.min.css");
    }
    elgg_load_css("fontawesome");
}
Example #27
0
/**
 * Add the embed menu item to the long text menu
 *
 * @param string $hook
 * @param string $type
 * @param array $items
 * @param array $vars
 * @return array
 */
function embed_longtext_menu($hook, $type, $items, $vars)
{
    if (elgg_get_context() == 'embed') {
        return $items;
    }
    $url = 'embed';
    $page_owner = elgg_get_page_owner_entity();
    if (elgg_instanceof($page_owner, 'group') && $page_owner->isMember()) {
        $url = 'embed?container_guid=' . $page_owner->getGUID();
    }
    $items[] = ElggMenuItem::factory(array('name' => 'embed', 'href' => $url, 'text' => elgg_echo('embed:media'), 'rel' => "embed-lightbox-{$vars['id']}", 'link_class' => "elgg-longtext-control elgg-lightbox embed-control embed-control-{$vars['id']}", 'priority' => 10));
    elgg_load_js('lightbox');
    elgg_load_css('lightbox');
    elgg_load_js('jquery.form');
    elgg_load_js('elgg.embed');
    return $items;
}
Example #28
0
function developers_process_settings()
{
    $settings = elgg_get_plugin_from_id('developers')->getAllSettings();
    ini_set('display_errors', (int) (!empty($settings['display_errors'])));
    if (!empty($settings['screen_log'])) {
        // don't show in action/simplecache
        $path = substr(current_page_url(), strlen(elgg_get_site_url()));
        if (!preg_match('~^(cache|action)/~', $path)) {
            $cache = new ElggLogCache();
            elgg_set_config('log_cache', $cache);
            elgg_register_plugin_hook_handler('debug', 'log', array($cache, 'insertDump'));
            elgg_register_plugin_hook_handler('view_vars', 'page/elements/html', function ($hook, $type, $vars, $params) {
                $vars['body'] .= elgg_view('developers/log');
                return $vars;
            });
        }
    }
    if (!empty($settings['show_strings'])) {
        // Beginning and end to make sure both early-rendered and late-loaded translations get included
        elgg_register_event_handler('init', 'system', 'developers_decorate_all_translations', 1);
        elgg_register_event_handler('init', 'system', 'developers_decorate_all_translations', 1000);
    }
    if (!empty($settings['show_modules'])) {
        elgg_require_js('elgg/dev/amd_monitor');
    }
    if (!empty($settings['wrap_views'])) {
        elgg_register_plugin_hook_handler('view', 'all', 'developers_wrap_views', 600);
    }
    if (!empty($settings['log_events'])) {
        elgg_register_event_handler('all', 'all', 'developers_log_events', 1);
        elgg_register_plugin_hook_handler('all', 'all', 'developers_log_events', 1);
    }
    if (!empty($settings['show_gear']) && elgg_is_admin_logged_in() && !elgg_in_context('admin')) {
        elgg_require_js('elgg/dev/gear');
        elgg_load_js('lightbox');
        elgg_load_css('lightbox');
        elgg_register_ajax_view('developers/gear_popup');
        elgg_register_simplecache_view('elgg/dev/gear.html');
        // TODO use ::class in 2.0
        $handler = ['Elgg\\DevelopersPlugin\\Hooks', 'alterMenuSectionVars'];
        elgg_register_plugin_hook_handler('view_vars', 'navigation/menu/elements/section', $handler);
        $handler = ['Elgg\\DevelopersPlugin\\Hooks', 'alterMenuSections'];
        elgg_register_plugin_hook_handler('view', 'navigation/menu/elements/section', $handler);
    }
}
Example #29
0
/**
 * Initialize the theme
 *
 * @return void
 */
function theme_oirschot_init()
{
    elgg_register_css('font-awesome', 'mod/theme_oirschot/vendors/font-awesome-4.0.3/css/font-awesome.min.css');
    elgg_load_css('font-awesome');
    elgg_extend_view("js/elgg", "js/theme_oirschot");
    elgg_extend_view("css/elgg", "css/theme_oirschot");
    elgg_extend_view("page/layouts/widgets", "theme_oirschot/widgets_fix");
    elgg_register_js('jquery.flexslider', 'mod/theme_oirschot/vendors/jquery.flexslider/jquery.flexslider-min.js');
    elgg_load_js('jquery.flexslider');
    elgg_unextend_view("page/elements/header", "search/header");
    elgg_unextend_view("page/elements/owner_block/extend", "group_tools/owner_block");
    elgg_register_page_handler("theme_oirschot", "theme_oirschot_page_handler");
    elgg_register_widget_type("profile_owner_block", elgg_echo("theme_oirschot:widgets:profile_owner_block:title"), elgg_echo("theme_oirschot:widgets:profile_owner_block:description"), "profile");
    elgg_register_plugin_hook_handler("register", "menu:site", "theme_oirschot_register_site_menu_handler");
    elgg_register_plugin_hook_handler("prepare", "menu:owner_block", "theme_oirschot_prepare_owner_block_menu_handler");
    elgg_register_plugin_hook_handler("route", "groups", "theme_oirschot_groups_route_handler");
    elgg_register_admin_menu_item("configure", "theme_oirschot", "appearance");
    elgg_register_action("theme_oirschot/slider_upload", dirname(__FILE__) . "/actions/slider_upload.php", "admin");
}
Example #30
0
/**
 * Initialize the community groups extension plugin
 */
function community_groups_init()
{
    $action_path = elgg_get_plugins_path() . 'community_groups/actions';
    elgg_extend_view('css/elgg', 'community_groups/css');
    // admin controls use a lightbox
    if (elgg_in_context('discussion') && elgg_is_admin_logged_in()) {
        elgg_load_js('lightbox');
        elgg_load_css('lightbox');
    }
    // group tabs
    if (elgg_in_context('groups')) {
        elgg_register_plugin_hook_handler('register', 'menu:filter', 'community_groups_filter_menu');
    }
    elgg_register_plugin_hook_handler('route', 'groups', 'community_groups_router');
    elgg_register_plugin_hook_handler('route', 'discussion', 'community_discussions_router');
    // do not need normal sidebar menu in community site
    elgg_unregister_event_handler('pagesetup', 'system', 'groups_setup_sidebar_menus');
    // only admins can create groups
    elgg_register_plugin_hook_handler('register', 'menu:title', 'community_groups_restrict_group_add_button');
    elgg_register_plugin_hook_handler('action', 'groups/edit', 'community_groups_restrict_group_edit_action');
    // attempt to join a group on first post
    elgg_register_plugin_hook_handler('action', 'discussion/save', 'community_groups_discussion_save_handler');
    // groups administration
    elgg_register_menu_item('page', array('name' => 'groups', 'href' => 'admin/groups/main', 'text' => elgg_echo('admin:groups'), 'context' => 'admin', 'priority' => 200, 'section' => 'administer'));
    elgg_register_action('groups/combine', "{$action_path}/groups/combine.php", 'admin');
    elgg_register_action('groups/categorize', "{$action_path}/groups/categorize.php", 'admin');
    elgg_register_action("groups/delete", elgg_get_plugins_path() . "groups/actions/groups/delete.php", 'admin');
    elgg_register_action("groups/saveblogsettings", "{$action_path}/groups/saveblogsettings.php", 'admin');
    elgg_register_action("groups/change_owner", "{$action_path}/groups/change_owner.php", 'admin');
    // set up site menu for discussion
    $item = new ElggMenuItem('discussion', elgg_echo('discussion'), 'discussion/all');
    elgg_register_menu_item('site', $item);
    // modify the menus on discussion posts
    if (elgg_is_admin_logged_in()) {
        elgg_register_plugin_hook_handler('register', 'menu:cg:moderator', 'community_groups_moderator_menu');
        elgg_extend_view('object/discussion', 'community_groups/discussion/controls');
        elgg_extend_view('object/discussion_reply', 'community_groups/discussion/controls');
        elgg_register_ajax_view('community_groups/discussion/offtopic');
    }
    elgg_register_plugin_hook_handler('register', 'menu:entity', 'community_groups_limit_editing');
    elgg_register_action('discussion/remove_ad', "{$action_path}/discussion/remove_ad.php", 'admin');
    elgg_register_action('discussion/offtopic', "{$action_path}/discussion/offtopic.php", 'admin');
}