Example #1
0
        if (!empty($pluginarray['checkfile']) && preg_match('/^[\\w\\.]+$/', $pluginarray['checkfile'])) {
            $filename = DISCUZ_ROOT . './source/plugin/' . $_G['gp_dir'] . '/' . $pluginarray['checkfile'];
            if (file_exists($filename)) {
                loadcache('pluginlanguage_install');
                $installlang = $pluginarray['language']['installlang'];
                @(include $filename);
            }
        }
        if (empty($_GET['ignoreversion']) && !in_array(strip_tags($_G['setting']['version']), explode(',', strip_tags($pluginarray['version'])))) {
            if (isset($dir)) {
                cpmsg('plugins_import_version_invalid_confirm', 'action=plugins&operation=import&ignoreversion=yes&dir=' . $dir . '&installtype=' . $installtype . '&license=' . $license, 'form', array('cur_version' => $pluginarray['version'], 'set_version' => $_G['setting']['version']));
            } else {
                cpmsg('plugins_import_version_invalid', '', 'error', array('cur_version' => $pluginarray['version'], 'set_version' => $_G['setting']['version']));
            }
        }
        plugininstall($pluginarray, $installtype);
        updatemenu('plugin');
        if (!empty($dir) && !empty($pluginarray['installfile']) && preg_match('/^[\\w\\.]+$/', $pluginarray['installfile'])) {
            dheader('location: ' . ADMINSCRIPT . '?action=plugins&operation=plugininstall&dir=' . $dir . '&installtype=' . $installtype);
        }
        if (!empty($dir)) {
            cpmsg('plugins_install_succeed', 'action=plugins', 'succeed');
        } else {
            cpmsg('plugins_import_succeed', 'action=plugins', 'succeed');
        }
    }
} elseif ($operation == 'plugininstall' || $operation == 'pluginuninstall' || $operation == 'pluginupgrade') {
    $finish = FALSE;
    $dir = $_G['gp_dir'];
    $installtype = str_replace('/', '', $_G['gp_installtype']);
    $extra = $installtype ? '_' . $installtype : '';
Example #2
0
    $tpl->close();
}
$plugins = array('qqconnect', 'cloudstat', 'soso_smilies', 'cloudsearch');
require_once libfile('function/plugin');
require_once libfile('function/admincp');
foreach ($plugins as $pluginid) {
    $importfile = DISCUZ_ROOT . './source/plugin/' . $pluginid . '/discuz_plugin_' . $pluginid . '.xml';
    if (!file_exists($importfile)) {
        continue;
    }
    $plugin = DB::fetch_first("SELECT identifier, modules FROM " . DB::table('common_plugin') . " WHERE identifier='{$pluginid}' LIMIT 1");
    if ($plugin) {
        $modules = unserialize($plugin['modules']);
        if ($modules['system'] == 2) {
            continue;
        }
        DB::delete('common_plugin', "identifier='{$pluginid}'");
    }
    $importtxt = @implode('', file($importfile));
    $pluginarray = getimportdata('Discuz! Plugin', $importtxt);
    $pluginarray['plugin']['modules'] = unserialize(dstripslashes($pluginarray['plugin']['modules']));
    $pluginarray['plugin']['modules']['system'] = 2;
    $pluginarray['plugin']['modules'] = addslashes(serialize($pluginarray['plugin']['modules']));
    plugininstall($pluginarray);
    if ($pluginarray['installfile']) {
        $plugindir = DISCUZ_ROOT . './source/plugin/' . $pluginarray['plugin']['directory'];
        if (file_exists($plugindir . '/' . $pluginarray['installfile'])) {
            @(include_once $plugindir . '/' . $pluginarray['installfile']);
        }
    }
}
Example #3
0
        $modules = unserialize($plugin['modules']);
        if ($modules['system'] > 0) {
            if ($pluginarray['plugin']['version'] != $plugin['version']) {
                pluginupgrade($pluginarray, '');
                if ($pluginarray['upgradefile']) {
                    $plugindir = DISCUZ_ROOT . './source/plugin/' . $pluginarray['plugin']['directory'];
                    if (file_exists($plugindir . '/' . $pluginarray['upgradefile'])) {
                        @(include_once $plugindir . '/' . $pluginarray['upgradefile']);
                    }
                }
            }
            if ($modules['system'] != 2) {
                $modules['system'] = 2;
                $modules = serialize($modules);
                C::t('common_plugin')->update($plugin['pluginid'], array('modules' => $modules));
            }
            continue;
        }
        C::t('common_plugin')->delete_by_identifier($pluginid);
    }
    $pluginarray['plugin']['modules'] = unserialize(dstripslashes($pluginarray['plugin']['modules']));
    $pluginarray['plugin']['modules']['system'] = 2;
    $pluginarray['plugin']['modules'] = serialize($pluginarray['plugin']['modules']);
    plugininstall($pluginarray, '', in_array($pluginid, $opens));
    if ($pluginarray['installfile']) {
        $plugindir = DISCUZ_ROOT . './source/plugin/' . $pluginarray['plugin']['directory'];
        if (file_exists($plugindir . '/' . $pluginarray['installfile'])) {
            @(include_once $plugindir . '/' . $pluginarray['installfile']);
        }
    }
}
/**
 *      [Discuz!] (C)2001-2099 Comsenz Inc.
 *      This is NOT a freeware, use is subject to license terms
 *
 *      $Id: install_plugin.php 20573 2011-02-28 04:02:36Z monkey $
 */
define('IN_COMSENZ', TRUE);
define('IN_ADMINCP', TRUE);
chdir('../../');
require_once './source/class/class_core.php';
$discuz =& discuz_core::instance();
$discuz->init_cron = false;
$discuz->init_session = false;
$discuz->init();
if ($_G['gp_key'] !== md5($_G['setting']['authkey'] . $_SERVER['REMOTE_ADDR'])) {
    exit;
}
$plugins = array('qqconnect', 'cloudstat', 'soso_smilies');
require_once libfile('function/plugin');
require_once libfile('function/admincp');
require_once libfile('function/cache');
foreach ($plugins as $pluginid) {
    $importfile = DISCUZ_ROOT . './source/plugin/' . $pluginid . '/discuz_plugin_' . $pluginid . '.xml';
    $importtxt = @implode('', file($importfile));
    $pluginarray = getimportdata('Discuz! Plugin', $importtxt);
    if (plugininstall($pluginarray)) {
        if (!empty($pluginarray['installfile']) && file_exists(DISCUZ_ROOT . './source/plugin/' . $pluginid . '/' . $pluginarray['installfile'])) {
            @(include_once DISCUZ_ROOT . './source/plugin/' . $pluginid . '/' . $pluginarray['installfile']);
        }
    }
}