示例#1
0
require_once $GLOBALS['g_campsiteDir'] . "/classes/Input.php";
$translator = \Zend_Registry::get('container')->getService('translator');
if (!$g_user->hasPermission('plugin_manager')) {
    camp_html_display_error($translator->trans("You do not have the right to manage plugins.", array(), 'plugins'));
    exit;
}
if (Input::Get('save')) {
    if (!SecurityToken::isValid()) {
        camp_html_display_error($translator->trans('Invalid security token!'));
        exit;
    }
    $p_plugins = Input::Get('p_plugins', 'array');
    $p_enabled = Input::Get('p_enabled', 'array');
    // delete from DB those which were uninstalled
    foreach (CampPlugin::getAll() as $CampPlugin) {
        if (!array_key_exists($CampPlugin->getName(), $p_plugins)) {
            if (strpos($CampPlugin->getName(), '/') !== false) {
                continue;
            }
            $CampPlugin->delete();
        }
    }
    foreach ($p_plugins as $plugin => $oldversion) {
        $CampPlugin = new CampPlugin($plugin);
        // installed version, if exists
        $currentVersion = $CampPlugin->getFsVersion();
        if ($p_enabled && array_key_exists($plugin, $p_enabled) && $p_enabled[$plugin]) {
            if ($CampPlugin->exists()) {
                if ($CampPlugin->getDbVersion() != $currentVersion) {
                    // update plugin