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 : '';
$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']); } } }
$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']); } } }