if ($m['preview']) { $zip->addFile($m['preview'], 'preview.jpg'); @unlink($m['preview']); } $zip->close(); header('content-type: application/zip'); header('content-disposition: attachment; filename="' . $ident . '.zip"'); readfile($fname); @unlink($fname); } } template('extension/designer'); } if ($do == 'convert') { $id = $_GPC['id']; $manifest = ext_module_manifest($id); if (!empty($manifest) && is_array($manifest)) { message('模块安装配置文件与当前版本兼容, 不需要转换!', '', 'error'); } $m = ext_module_manifest_compat($id); if (empty($m) || empty($m['meta']) || empty($m['convert']) || empty($m['manifest'])) { message('您的模块定义文件完全不兼容, 系统不能支持自动转换. 请联系模块开发者解决.'); } if ($_GPC['confirm'] == '1') { ob_clean(); header('content-type: paint/xml'); header('content-disposition: attachment; filename="manifest.xml"'); exit($m['manifest']); } else { message("当前的模块支持自动转换版本. 将会把模块\"{$m['convert']['title']}\"从版本\"{$m['convert']['compact']}\"转换至当前版本\"" . IMS_VERSION . "\", 继续操作会提示下载新的版本配置文件, 请将生成的配置文件置于模块目录下覆盖后重新安装(转换后有Bug请联系模块开发者), 是否要继续?<a href=\"" . create_url('extension/module/convert', array('id' => $_GPC['id'], 'confirm' => 1)) . '">是</a> <a href="javascript:history.go(-1);">否</a>', '', 'tips'); }
} else { pdo_run($manifest['uninstall']); } } message('模块卸载成功!', url('extension/module'), 'success'); } } if ($do == 'upgrade') { $id = $_GPC['m']; $module = pdo_fetch("SELECT mid, name, version FROM " . tablename('modules') . " WHERE name = :name", array(':name' => $id)); if (empty($module)) { message('模块已经被卸载或是不存在!', '', 'error'); } $type = $_GPC['type']; $modulepath = IA_ROOT . '/addons/' . $id . '/'; $manifest = ext_module_manifest($module['name']); $r = cloud_prepare(); if (is_error($r)) { message($r['message'], url('cloud/profile'), 'error'); } $info = cloud_m_upgradeinfo($id); if ($type == 'getinfo') { message($info, '', 'ajax'); } if (!is_error($info)) { if (empty($_GPC['flag'])) { if (!empty($info['version']['upgradeprice'])) { header('location: ' . url('cloud/redirect/buyversion', array('m' => $id, 'version' => $module['version'], 'is_upgrade' => 1))); exit; } else { header('location: ' . url('cloud/process', array('m' => $id, 'is_upgrade' => 1)));
function ext_module_checkupdate($modulename) { $manifest = ext_module_manifest($modulename); if (!empty($manifest) && is_array($manifest)) { $version = $manifest['application']['version']; load()->model('module'); $module = module_fetch($modulename); if ($version > $module['version']) { return true; } else { return false; } } else { return false; } }
$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'); } } } } }
function ext_module_checkupdate($modulename) { global $_W; $manifest = ext_module_manifest($modulename); if (!empty($manifest) && is_array($manifest)) { $version = $manifest['application']['version']; if ($version > $_W['modules'][$modulename]['version']) { return true; } else { return false; } } else { return false; } }