Esempio n. 1
0
/**
 * Initializes the plugin
 *
 * @return void
 */
function search_advanced_init()
{
    // page handler for search actions and results
    elgg_register_page_handler("search_advanced", "search_advanced_page_handler");
    elgg_register_page_handler("search", "search_advanced_search_page_handler");
    // search hooks
    search_advanced_unregister_default_search_hooks();
    search_advanced_register_search_hooks();
    // unregister object:page from search
    elgg_unregister_entity_type("object", "page_top");
    // views
    elgg_extend_view("css/elgg", "css/search_advanced/site");
    elgg_extend_view("js/elgg", "js/search_advanced/site");
    // widgets
    elgg_register_widget_type("search", elgg_echo("search"), elgg_echo("search"), array("profile", "dashboard", "index", "groups"), true);
    elgg_register_widget_type("search_user", elgg_echo("search_advanced:widgets:search_user:title"), elgg_echo("search_advanced:widgets:search_user:description"), array("dashboard", "index"));
    if (elgg_is_active_plugin("categories")) {
        // make universal categories searchable
        add_translation(get_current_language(), array("tag_names:universal_categories" => elgg_echo("categories")));
        elgg_register_tag_metadata_name("universal_categories");
    }
    // hooks and events to clear cache
    // register hooks
    elgg_register_plugin_hook_handler("action", "admin/plugins/activate", "search_advanced_clear_keywords_cache");
    elgg_register_plugin_hook_handler("action", "admin/plugins/deactivate", "search_advanced_clear_keywords_cache");
    elgg_register_plugin_hook_handler("action", "admin/plugins/activate_all", "search_advanced_clear_keywords_cache");
    elgg_register_plugin_hook_handler("action", "admin/plugins/deactivate_all", "search_advanced_clear_keywords_cache");
    elgg_register_plugin_hook_handler("action", "plugins/settings/save", "search_advanced_clear_keywords_cache");
    elgg_register_plugin_hook_handler("register", "menu:search_type_selection", "search_advanced_register_menu_type_selection");
    // register events
    elgg_register_event_handler("upgrade", "system", "search_advanced_clear_keywords_cache");
    // actions
    elgg_register_action("search_advanced/settings/save", dirname(__FILE__) . "/actions/plugins/settings/save.php", "admin");
}
Esempio n. 2
0
/**
 * Initialize the plugin
 * @return void
 */
function group_subtypes_init()
{
    // Search
    elgg_unregister_entity_type('group', '');
    elgg_unregister_plugin_hook_handler('search', 'group', 'search_groups_hook');
    elgg_register_plugin_hook_handler('search', 'group', 'group_subtypes_search_hook');
    elgg_register_plugin_hook_handler('route', 'groups', 'group_subtypes_route_edit_pages');
    $hooks = _elgg_services()->hooks->getAllHandlers();
    $conf = group_subtypes_get_config();
    $identifiers = array();
    foreach ($conf as $subtype => $options) {
        elgg_register_entity_type('group', $subtype);
        $identifier = elgg_extract('identifier', $options, 'groups');
        if (in_array($identifier, $identifiers)) {
            continue;
        }
        elgg_register_plugin_hook_handler('page_identifier', "group:{$subtype}", 'group_subtypes_page_identifier');
        elgg_register_plugin_hook_handler('list_subtypes', $identifier, 'group_subtypes_list_subtypes');
        if ($identifier !== 'groups') {
            elgg_register_menu_item('site', array('name' => $identifier, 'href' => "{$identifier}/all", 'text' => elgg_echo($identifier)));
            elgg_register_plugin_hook_handler('route', $identifier, 'group_subtypes_router', 1);
            // core doesn't run 'route' hooks on an updated page identifier, so we will register the callback manually
            if (!isset($hooks['route']['groups'])) {
                continue;
            }
            foreach ($hooks['route']['groups'] as $priority => $callbacks) {
                $callbacks = (array) $callbacks;
                foreach ($callbacks as $callback) {
                    elgg_register_plugin_hook_handler('route', $identifier, $callback, $priority);
                }
            }
        }
    }
    elgg_register_plugin_hook_handler('permissions_check:parent', 'group', 'group_subtypes_can_parent');
    // Form hacks
    elgg_register_plugin_hook_handler('action', 'groups/edit', 'group_subtypes_update_fields_config');
    elgg_extend_view('forms/groups/edit', 'forms/groups/edit/subtype');
    elgg_extend_view('forms/groups/edit', 'forms/groups/edit/parent_guid');
    // Group URL
    elgg_register_plugin_hook_handler('entity:url', 'group', 'group_subtypes_rewrite_group_urls');
    // Admin
    elgg_register_admin_menu_item('administer', 'groups', null, 20);
    elgg_register_admin_menu_item('administer', 'subtypes', 'groups', 10);
    elgg_register_action('admin/groups/subtypes/add', __DIR__ . '/actions/admin/groups/subtypes/add.php', 'admin');
    elgg_register_action('admin/groups/subtypes/config', __DIR__ . '/actions/admin/groups/subtypes/config.php', 'admin');
    elgg_register_action('admin/groups/subtypes/change_subtype', __DIR__ . '/actions/admin/groups/subtypes/change_subtype.php', 'admin');
    elgg_extend_view('admin.css', 'forms/admin/groups/subtypes/config.css');
    // Group tools
    if (elgg_is_active_plugin('group_tools')) {
        elgg_unextend_view("groups/edit", "group_tools/group_edit_tabbed", 1);
        elgg_unextend_view("groups/edit", "group_tools/group_edit_tabbed_js", 999999999);
        elgg_extend_view('css/elgg', 'forms/groups/edit/group_tools.css');
    }
}
Esempio n. 3
0
/**
 * Initializes the plugin
 *
 * @return void
 */
function search_advanced_init()
{
    // page handler for search actions and results
    elgg_register_page_handler('search_advanced', 'search_advanced_page_handler');
    elgg_register_page_handler('search', 'search_advanced_search_page_handler');
    search_advanced_prepare_search_hooks();
    // unregister object:page_top from search
    elgg_unregister_entity_type('object', 'page_top');
    elgg_register_plugin_hook_handler('search', 'object:page', 'search_advanced_search_page');
    // views
    elgg_extend_view('css/elgg', 'css/search_advanced/site');
    elgg_extend_view('js/elgg', 'js/search_advanced/site.js');
    elgg_define_js('browserstate-history', ['src' => '/mod/search_advanced/vendors/browserstate-history.js/jquery.history.js', 'exports' => 'History']);
    elgg_extend_view('page/elements/foot', 'search_advanced/foot', 400);
    // widgets
    elgg_register_widget_type('search', elgg_echo('search'), elgg_echo('search'), ['profile', 'dashboard', 'index', 'groups'], true);
    elgg_register_widget_type('search_user', elgg_echo('search_advanced:widgets:search_user:title'), elgg_echo('search_advanced:widgets:search_user:description'), ['dashboard', 'index']);
    // register hooks
    elgg_register_plugin_hook_handler('register', 'menu:search_type_selection', 'search_advanced_register_menu_type_selection');
    elgg_register_plugin_hook_handler('register', 'menu:search_list', 'search_advanced_register_menu_list');
    // actions
    elgg_register_action('search_advanced/settings/save', dirname(__FILE__) . '/actions/plugins/settings/save.php', 'admin');
}
Esempio n. 4
0
/**
 * Unregisters an entity type and subtype as a public-facing type.
 *
 * @warning With a blank subtype, it unregisters that entity type including
 * all subtypes. This must be called after all subtypes have been registered.
 *
 * @param string $type    The type of entity (object, site, user, group)
 * @param string $subtype The subtype to register (may be blank)
 *
 * @return true|false Depending on success
 * @deprecated 1.9 Use {@link elgg_unregister_entity_type()}
 */
function unregister_entity_type($type, $subtype)
{
    elgg_deprecated_notice("unregister_entity_type() was deprecated by elgg_unregister_entity_type()", 1.9);
    return elgg_unregister_entity_type($type, $subtype);
}