/** * 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"); }
/** * 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'); } }
/** * 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'); }
/** * 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); }