/** * API method * Performs an action on a plugin * @param mixed[] $params * @option string action * @option string plugin * @option string pwg_token */ function ws_plugins_performAction($params, $service) { global $template; if (get_pwg_token() != $params['pwg_token']) { return new PwgError(403, 'Invalid security token'); } define('IN_ADMIN', true); include_once PHPWG_ROOT_PATH . 'admin/include/plugins.class.php'; $plugins = new plugins(); $errors = $plugins->perform_action($params['action'], $params['plugin']); if (!empty($errors)) { return new PwgError(500, $errors); } else { if (in_array($params['action'], array('activate', 'deactivate'))) { $template->delete_compiled_templates(); } return true; } }
} elseif (null != pwg_get_session_var('plugins_show_details')) { $show_details = pwg_get_session_var('plugins_show_details'); } else { $show_details = false; } $base_url = get_root_url() . 'admin.php?page=' . $page['page']; $pwg_token = get_pwg_token(); $action_url = $base_url . '&plugin=' . '%s' . '&pwg_token=' . $pwg_token; $plugins = new plugins(); //--------------------------------------------------perform requested actions if (isset($_GET['action']) and isset($_GET['plugin'])) { if (!is_webmaster()) { $page['errors'][] = l10n('Webmaster status is required.'); } else { check_pwg_token(); $page['errors'] = $plugins->perform_action($_GET['action'], $_GET['plugin']); if (empty($page['errors'])) { if ($_GET['action'] == 'activate' or $_GET['action'] == 'deactivate') { $template->delete_compiled_templates(); $persistent_cache->purge(true); } redirect($base_url); } } } //--------------------------------------------------------Incompatible Plugins if (isset($_GET['incompatible_plugins'])) { $incompatible_plugins = array(); foreach ($plugins->get_incompatible_plugins() as $plugin => $version) { if ($plugin == '~~expire~~') { continue;
/** * Automatically activate some core plugins */ function activate_core_plugins() { include_once PHPWG_ROOT_PATH . 'admin/include/plugins.class.php'; $plugins = new plugins(); foreach ($plugins->fs_plugins as $plugin_id => $fs_plugin) { if (in_array($plugin_id, array('TakeATour'))) { $plugins->perform_action('activate', $plugin_id); } } }