123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539 |
- <?php
- define('ELGG_PLUGIN_INCLUDE_START', 1);
- define('ELGG_PLUGIN_REGISTER_VIEWS', 2);
- define('ELGG_PLUGIN_REGISTER_LANGUAGES', 4);
- define('ELGG_PLUGIN_REGISTER_CLASSES', 8);
- define('ELGG_PLUGIN_USER_SETTING_PREFIX', 'plugin:user_setting:');
- define('ELGG_PLUGIN_INTERNAL_PREFIX', 'elgg:internal:');
- function _elgg_get_plugin_dirs_in_dir($dir = null) {
- return _elgg_services()->plugins->getDirsInDir($dir);
- }
- function _elgg_generate_plugin_entities() {
- return _elgg_services()->plugins->generateEntities();
- }
- function _elgg_cache_plugin_by_id(\ElggPlugin $plugin) {
- return _elgg_services()->plugins->cache($plugin);
- }
- function elgg_get_plugin_from_id($plugin_id) {
- return _elgg_services()->plugins->get($plugin_id);
- }
- function elgg_plugin_exists($id) {
- return _elgg_services()->plugins->exists($id);
- }
- function _elgg_get_max_plugin_priority() {
- return _elgg_services()->plugins->getMaxPriority();
- }
- function elgg_is_active_plugin($plugin_id, $site_guid = null) {
- return _elgg_services()->plugins->isActive($plugin_id, $site_guid);
- }
- function _elgg_load_plugins() {
- return _elgg_services()->plugins->load();
- }
- function elgg_get_plugins($status = 'active', $site_guid = null) {
- return _elgg_services()->plugins->find($status, $site_guid);
- }
- function _elgg_set_plugin_priorities(array $order) {
- return _elgg_services()->plugins->setPriorities($order);
- }
- function _elgg_reindex_plugin_priorities() {
- return _elgg_services()->plugins->reindexPriorities();
- }
- function _elgg_namespace_plugin_private_setting($type, $name, $id = null) {
- return _elgg_services()->plugins->namespacePrivateSetting($type, $name, $id);
- }
- function _elgg_get_plugins_provides($type = null, $name = null) {
- return _elgg_services()->plugins->getProvides($type, $name);
- }
- function _elgg_invalidate_plugins_provides_cache() {
- return _elgg_services()->plugins->invalidateProvidesCache();
- }
- function _elgg_check_plugins_provides($type, $name, $version = null, $comparison = 'ge') {
- return _elgg_services()->plugins->checkProvides($type, $name, $version, $comparison);
- }
- function _elgg_get_plugin_dependency_strings($dep) {
- return _elgg_services()->plugins->getDependencyStrings($dep);
- }
- function elgg_get_all_plugin_user_settings($user_guid = 0, $plugin_id = null, $return_obj = false) {
- return _elgg_services()->plugins->getAllUserSettings($user_guid, $plugin_id, $return_obj);
- }
- function elgg_set_plugin_user_setting($name, $value, $user_guid = 0, $plugin_id = null) {
- return _elgg_services()->plugins->setUserSetting($name, $value, $user_guid, $plugin_id);
- }
- function elgg_unset_plugin_user_setting($name, $user_guid = 0, $plugin_id = null) {
- return _elgg_services()->plugins->unsetUserSetting($name, $user_guid, $plugin_id);
- }
- function elgg_get_plugin_user_setting($name, $user_guid = 0, $plugin_id = null, $default = null) {
- return _elgg_services()->plugins->getUserSetting($name, $user_guid, $plugin_id, $default);
- }
- function elgg_set_plugin_setting($name, $value, $plugin_id = null) {
- return _elgg_services()->plugins->setSetting($name, $value, $plugin_id);
- }
- function elgg_get_plugin_setting($name, $plugin_id = null, $default = null) {
- return _elgg_services()->plugins->getSetting($name, $plugin_id, $default);
- }
- function elgg_unset_plugin_setting($name, $plugin_id = null) {
- return _elgg_services()->plugins->unsetSetting($name, $plugin_id);
- }
- function elgg_unset_all_plugin_settings($plugin_id = null) {
- return _elgg_services()->plugins->unsetAllSettings($plugin_id);
- }
- function elgg_get_entities_from_plugin_user_settings(array $options = array()) {
- return _elgg_services()->plugins->getEntitiesFromUserSettings($options);
- }
- function _elgg_plugins_test($hook, $type, $value, $params) {
- global $CONFIG;
- $value[] = $CONFIG->path . 'engine/tests/ElggCorePluginsAPITest.php';
- return $value;
- }
- function _plugins_deactivate_dependency_check($event, $type, $params) {
- $plugin_id = $params['plugin_entity']->getManifest()->getPluginID();
- $plugin_name = $params['plugin_entity']->getManifest()->getName();
- $active_plugins = elgg_get_plugins();
- $dependents = array();
- foreach ($active_plugins as $plugin) {
- $manifest = $plugin->getManifest();
- $requires = $manifest->getRequires();
- foreach ($requires as $required) {
- if ($required['type'] == 'plugin' && $required['name'] == $plugin_id) {
-
- $dependents[$manifest->getPluginID()] = $plugin;
- }
- }
- }
- if ($dependents) {
- $list = '<ul>';
-
- foreach ($dependents as $dependent) {
- $list .= '<li>' . $dependent->getManifest()->getName() . '</li>';
- }
- $list .= '</ul>';
- register_error(elgg_echo('ElggPlugin:Dependencies:ActiveDependent', array($plugin_name, $list)));
- return false;
- }
- }
- function _elgg_plugins_init() {
- if (elgg_is_admin_logged_in()) {
- elgg_register_ajax_view('object/plugin/full');
- }
- elgg_register_plugin_hook_handler('unit_test', 'system', '_elgg_plugins_test');
-
-
- elgg_register_event_handler('deactivate', 'plugin', '_plugins_deactivate_dependency_check');
-
- $svc = _elgg_services()->plugins;
- elgg_register_event_handler('deactivate', 'plugin', array($svc, 'invalidateIsActiveCache'));
- elgg_register_event_handler('activate', 'plugin', array($svc, 'invalidateIsActiveCache'));
- elgg_register_action("plugins/settings/save", '', 'admin');
- elgg_register_action("plugins/usersettings/save");
- elgg_register_action('admin/plugins/activate', '', 'admin');
- elgg_register_action('admin/plugins/deactivate', '', 'admin');
- elgg_register_action('admin/plugins/activate_all', '', 'admin');
- elgg_register_action('admin/plugins/deactivate_all', '', 'admin');
- elgg_register_action('admin/plugins/set_priority', '', 'admin');
- elgg_register_library('elgg:markdown', elgg_get_root_path() . 'vendors/markdown/markdown.php');
- }
- return function(\Elgg\EventsService $events, \Elgg\HooksRegistrationService $hooks) {
- $events->registerHandler('init', 'system', '_elgg_plugins_init');
- };
|