$manifest = ext_module_manifest($module['name']); if (!is_array($manifest) || empty($manifest)) { $ret = ext_module_manifest_compat($id); if (!empty($ret) && !empty($ret['convert'])) { $manifest = $ret['convert']; $version_error = true; } } if (is_array($manifest) && version_compare($module['version'], $manifest['application']['version']) == -1) { $module['upgrade'] = 1; } $isinstall = true; $from = 'installed'; } else { require model('cloud'); $define = cloud_m_info($id); if (!empty($define)) { $manifest = ext_module_manifest_parse($define); $from = 'cloud'; } if (empty($manifest)) { $manifest = ext_module_manifest($id); if (!is_array($manifest) || empty($manifest)) { $ret = ext_module_manifest_compat($id); if (!empty($ret) && !empty($ret['convert'])) { $manifest = $ret['convert']; $version_error = true; } } $from = 'local'; }
if (!is_error($upgrade) && !empty($upgrade['upgrade'])) { $upgrade = array('version' => $upgrade['version'], 'release' => $upgrade['release'], 'upgrade' => 1, 'lastupdate' => TIMESTAMP); cache_write('checkupgrade:system', $upgrade); message($upgrade, '', 'ajax'); } else { $upgrade = array('lastupdate' => TIMESTAMP); cache_write('checkupgrade:system', $upgrade); } } else { message($lock, '', 'ajax'); } } elseif ($do == 'module') { $modulename = $_GPC['m']; $module = pdo_fetch("SELECT mid, name, version, title FROM " . tablename('modules') . " WHERE name = :name", array(':name' => $modulename)); if (!empty($module)) { $info = cloud_m_info($modulename); if (!empty($info) && !empty($info['version']['version'])) { if (ver_compare($module['version'], $info['version']['version'])) { $upgrade = array('name' => $module['title'], 'version' => $info['version']['version'], 'upgrade' => 1, 'lastupdate' => TIMESTAMP); message($upgrade, '', 'ajax'); } } else { $manifest = ext_module_manifest($modulename); if (!empty($manifest)) { if (ver_compare($module['version'], $manifest['application']['version'])) { $upgrade = array('name' => $module['title'], 'version' => $manifest['application']['version'], 'upgrade' => 1, 'lastupdate' => TIMESTAMP); message($upgrade, '', 'ajax'); } } } }
message('模块已经被卸载或是不存在!', '', 'error'); } if (!empty($module['issystem'])) { message('系统模块不能卸载!', '', 'error'); } if ($module['isrulefields'] && !isset($_GPC['confirm'])) { message('卸载模块时同时删除规则数据吗, 删除规则数据将同时删除相关规则的统计分析数据?<div><a class="btn btn-primary" style="width:80px;" href="' . url('extension/module/uninstall', array('id' => $_GPC['id'], 'confirm' => 1)) . '">是</a> <a class="btn btn-default" style="width:80px;" href="' . url('extension/module/uninstall', array('id' => $_GPC['id'], 'confirm' => 0)) . '">否</a></div>', '', 'tips'); } else { $modulepath = IA_ROOT . '/addons/' . $id . '/'; $manifest = ext_module_manifest($module['name']); if (empty($manifest)) { $r = cloud_prepare(); if (is_error($r)) { message($r['message'], url('cloud/profile'), 'error'); } $info = cloud_m_info($module['name']); if (!is_error($info)) { $packet = cloud_m_build($module['name']); $manifest = ext_module_manifest_parse($packet['manifest']); } else { message($info['message'], '', 'error'); } } ext_module_clean($id, $_GPC['confirm'] == '1'); cache_build_modules(); if (!empty($manifest['uninstall'])) { if (strexists($manifest['uninstall'], '.php')) { if (file_exists($modulepath . $manifest['uninstall'])) { include_once $modulepath . $manifest['uninstall']; } } else {
<?php /** * [WeEngine System] Copyright (c) 2014 WE7.CC * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details. */ defined('IN_IA') or exit('Access Denied'); load()->model('cloud'); load()->func('communication'); $do = !empty($_GPC['do']) && in_array($do, array('module', 'system')) ? $_GPC['do'] : exit('Access Denied'); $result = cloud_prepare(); if (is_error($result)) { message($result['message'], '', 'ajax'); } if ($do == 'module') { $info = cloud_m_info(trim($_GPC['m'])); if (is_error($info) && $info['errno'] == -10) { message($info, '', 'ajax'); } }