$moduleHash = $modules[$step]; $moduleFile = $allmodules[$moduleHash]; $dm = new DedeModule($moduleDir); $minfos = $dm->GetModuleInfo($moduleHash); extract($minfos, EXTR_SKIP); $menustring = addslashes($dm->GetSystemFile($moduleHash, 'menustring')); $query = "INSERT INTO `#@__sys_module`(`hashcode` , `modname` , `indexname` , `indexurl` , `ismember` , `menustring` )\r\n VALUES ('{$moduleHash}' , '{$name}' , '{$indexname}' , '{$indexurl}' , '{$ismember}' , '{$menustring}' ) "; $rs = $dsql->ExecuteNoneQuery("Delete From `#@__sys_module` where hashcode like '{$moduleHash}' "); $rs = $dsql->ExecuteNoneQuery($query); if (!$rs) { $msg = "<font color='red'>保存数据库信息失败,无法完成你选择的模块安装!</font><br /><br />"; $msg .= "<a href='module-install.php?step=9999' target='_top'>点击此进行下一步操作 >></a>"; exit; } //写文件 $dm->WriteFiles($moduleHash, 1); $dm->WriteSystemFile($moduleHash, 'readme'); $setupsql = $dm->GetSystemFile($moduleHash, 'setupsql40'); //运行SQL $mysql_version = $dsql->GetVersion(TRUE); $setupsql = preg_replace("#ENGINE=MyISAM#i", 'TYPE=MyISAM', $setupsql); $sql41tmp = 'ENGINE=MyISAM DEFAULT CHARSET=' . $cfg_db_language; if ($mysql_version >= 4.1) { $setupsql = preg_replace("#TYPE=MyISAM#i", $sql41tmp, $setupsql); } //_ROOTURL_ if ($cfg_cmspath == '/') { $cfg_cmspath = ''; } $rooturl = $cfg_basehost . $cfg_cmspath; $setupsql = preg_replace("#_ROOTURL_#i", $rooturl, $setupsql);
ShowMsg("目录 {$mdir} 不支持写入,这将导致安装程序没法正常创建!", "-1"); exit; } $dm = new DedeModule($mdir); $minfos = $dm->GetModuleInfo($hash); extract($minfos, EXTR_SKIP); $menustring = addslashes($dm->GetSystemFile($hash, 'menustring')); $indexurl = str_replace('**', '=', $indexurl); $query = "INSERT INTO `#@__sys_module`(`hashcode` , `modname` , `indexname` , `indexurl` , `ismember` , `menustring` )\r\n VALUES ('{$hash}' , '{$name}' , '{$indexname}' , '{$indexurl}' , '{$ismember}' , '{$menustring}' ) "; $rs = $dsql->ExecuteNoneQuery("DELETE FROM `#@__sys_module` WHERE hashcode LIKE '{$hash}' "); $rs = $dsql->ExecuteNoneQuery($query); if (!$rs) { ShowMsg('保存数据库信息失败,无法完成安装!' . $dsql->GetError(), 'javascript:;'); exit; } $dm->WriteFiles($hash, $isreplace); $filename = ''; if (!isset($autosetup) || $autosetup == 0) { $filename = $dm->WriteSystemFile($hash, 'setup'); } if (!isset($autodel) || $autodel == 0) { $dm->WriteSystemFile($hash, 'uninstall'); } $dm->WriteSystemFile($hash, 'readme'); $dm->Clear(); //用模块的安装程序安装 if (!isset($autosetup) || $autosetup == 0) { include DEDEDATA . '/module/' . $filename; exit; } else { $mysql_version = $dsql->GetVersion(TRUE);
/** * caijixia for dedecms * @version $Id: cjx.class.php 112 2013-05-28 01:22:57Z qinjinpeng $ * @copyright Copyright (c) 2011,caijixia for dedecms,caijixia.com. * @license This is NOT a freeware, use is subject to license terms * * @param NULL * @return NULL */ function ac_updatenow() { require_once DEDEINC . "/dedemodule.class.php"; $mdir = DEDEDATA . '/module'; $ver = $this->gv('ver'); $file = $this->downfile('http://www.dedeapps.com/uploads/onlineupdate/' . $ver . '_' . $this->gv('soft_lang') . '.xml'); file_put_contents($mdir . '/cjxupdate.xml', $file); $dm = new DedeModule($mdir); $infos = $dm->GetModuleInfo($mdir . '/cjxupdate.xml', 'file'); if (empty($infos['hash'])) { ShowMsg('升级失败', 1, 2); exit; } copy($mdir . '/cjxupdate.xml', $mdir . '/' . $infos['hash'] . '.xml'); $dm->WriteFiles($infos['hash'], 1); @unlink($mdir . '/cjxupdate.xml'); @unlink($mdir . '/' . $infos['hash'] . '.xml'); ShowMsg('升级完成', 1, 2); }