/** @ignore */ define('PLUGINS_DISABLED', true); /** * MantisBT Core API's */ require_once 'core.php'; require_api('access_api.php'); require_api('authentication_api.php'); require_api('config_api.php'); require_api('form_api.php'); require_api('gpc_api.php'); require_api('helper_api.php'); require_api('lang_api.php'); require_api('plugin_api.php'); require_api('print_api.php'); require_api('string_api.php'); form_security_validate('manage_plugin_uninstall'); auth_reauthenticate(); access_ensure_global_level(config_get('manage_plugin_threshold')); # register plugins and metadata without initializing plugin_register_installed(); $f_basename = gpc_get_string('name'); $t_plugin = plugin_register($f_basename, true); helper_ensure_confirmed(sprintf(lang_get('plugin_uninstall_message'), string_display_line($t_plugin->name)), lang_get('plugin_uninstall')); if (!is_null($t_plugin)) { plugin_uninstall($t_plugin); } else { plugin_force_uninstall($f_basename); } form_security_purge('manage_plugin_uninstall'); print_successful_redirect('manage_plugin_page.php');
/** * Initialize all installed plugins. * Post-signals EVENT_PLUGIN_INIT. */ function plugin_init_installed() { if (OFF == config_get_global('plugins_enabled') || !db_table_exists(db_get_table('plugin'))) { return; } global $g_plugin_cache, $g_plugin_current, $g_plugin_cache_priority, $g_plugin_cache_protected, $g_plugin_cache_init; $g_plugin_cache = array(); $g_plugin_current = array(); $g_plugin_cache_init = array(); $g_plugin_cache_priority = array(); $g_plugin_cache_protected = array(); plugin_register('MantisCore'); plugin_register_installed(); $t_plugins = array_keys($g_plugin_cache); do { $t_continue = false; $t_plugins_retry = array(); foreach ($t_plugins as $t_basename) { if (plugin_init($t_basename)) { $t_continue = true; } else { # Dependent plugin $t_plugins_retry[] = $t_basename; } } $t_plugins = $t_plugins_retry; } while ($t_continue); event_signal('EVENT_PLUGIN_INIT'); }