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> &nbsp;&nbsp;<a href="javascript:history.go(-1);">否</a>', '', 'tips');
    }
Example #2
0
            } 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)));
Example #3
0
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;
    }
}
Example #4
0
            $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;
    }
}