$v) $$k = stripslashes($v); if(!isset($autosetup)) $autosetup = 0; if(!isset($autodel)) $autodel = 0; $mdir = DEDEDATA.'/module'; $hashcode = md5($modulname.$email); $moduleFilename = $mdir.'/'.$hashcode.'.xml'; $menustring = base64_encode($menustring); $indexurl = str_replace('=', '**', $indexurl); $dm = new DedeModule($mdir); if($dm->HasModule($hashcode)) { $dm->Clear(); ShowMsg("对不起,你指定同名模块已经存在,因此不能创建项目!
如果你要更新这个模块,请先删除:module/{$hashcode}.xml","-1"); exit(); } $readmef = $setupf = $uninstallf = ''; if(empty($readmetxt)) { move_uploaded_file($readme, $mdir."/{$hashcode}-r.html") or die("你没填写说明或上传说明文件!"); $readmef = $dm->GetEncodeFile($mdir."/{$hashcode}-r.html", TRUE); } else { $readmetxt = "

".$readmetxt; $readmetxt = preg_replace("#[\r\n]{1,}#", "
\r\n", $readmetxt); $readmetxt .= "

"; $readmef = base64_encode(trim($readmetxt)); } if($autosetup==0) { move_uploaded_file($setup,$mdir."/{$hashcode}-s.php") or die("你没上传,或系统无法把setup文件移动到 module 目录!"); $setupf = $dm->GetEncodeFile($mdir."/{$hashcode}-s.php",TRUE); } if($autodel==0) { move_uploaded_file($uninstall, $mdir."/{$hashcode}-u.php") or die("你没上传,或系统无法把uninstall文件移动到 module 目录!"); $uninstallf = $dm->GetEncodeFile($mdir."/{$hashcode}-u.php", TRUE); } if(trim($setupsql40)=='') $setupsql40 = ''; else $setupsql40 = base64_encode(trim($setupsql40)); //if(trim($setupsql41)=='') $setupsql41 = ''; //else $setupsql41 = base64_encode(trim($setupsql41)); if(trim($delsql)=='') $delsql = ''; else $delsql = base64_encode(trim($delsql)); $modulinfo = " name={$modulname} team={$team} time={$mtime} email={$email} url={$url} hash={$hashcode} indexname={$indexname} indexurl={$indexurl} ismember={$ismember} autosetup={$autosetup} autodel={$autodel} lang={$lang} moduletype={$moduletype} $menustring {$readmef} $setupsql40 $delsql {$setupf} {$uninstallf} $filelist "; $filelists = explode("\n", $filelist); foreach($filelists as $v) { $v = trim($v); if(!empty($v)) $dm->MakeEncodeFileTest(dirname(__FILE__), $v); } //测试无误后编译安装包 $fp = fopen($moduleFilename, 'w'); fwrite($fp, $modulinfo); fwrite($fp, "\r\n"); foreach($filelists as $v) { $v = trim($v); if(!empty($v)) $dm->MakeEncodeFile(dirname(__FILE__), $v, $fp); } fwrite($fp, "\r\n"); fwrite($fp, "\r\n"); fclose($fp); ShowMsg("成功对一个新模块进行编译!", "module_main.php"); exit(); } /*------------- //修改项目 function editModule() --------------*/ else if($action=='edit') { $filelist = str_replace("\r", "\n", trim($filelist)); $filelist = trim(preg_replace("#[\n]{1,}#", "\n", $filelist)); if($filelist=="") { ShowMsg("对不起,你没有指定模块的文件列表,因此不能创建项目!","-1"); exit(); } //已经去除转义 foreach($_POST as $k=>$v) $$k = stripslashes($v); if(!isset($autosetup)) $autosetup = 0; if(!isset($autodel)) $autodel = 0; $mdir = DEDEDATA.'/module'; $hashcode = $hash; $moduleFilename = $mdir.'/'.$hashcode.'.xml'; $modulname = str_replace('=', '', $modulname); $email = str_replace('=', '', $email); $team = str_replace('=', '', $team); $indexurl = str_replace('=', '**', $indexurl); $menustring = base64_encode($menustring); $dm = new DedeModule($mdir); $readmef = base64_encode($readmetxt); $setupf = $uninstallf = ''; //编译setup文件 if(is_uploaded_file($setup)) { move_uploaded_file($setup, $mdir."/{$hashcode}-s.php") or die("你没上传,或系统无法把setup文件移动到 module 目录!"); $setupf = $dm->GetEncodeFile($mdir."/{$hashcode}-s.php", TRUE); } else { if($autosetup==0) $setupf = base64_encode($dm->GetSystemFile($hashcode, 'setup')); } //编译uninstall文件 if(is_uploaded_file($uninstall)) { move_uploaded_file($uninstall,$mdir."/{$hashcode}-u.php") or die("你没上传,或系统无法把uninstall文件移动到 module 目录!"); $uninstallf = $dm->GetEncodeFile($mdir."/{$hashcode}-u.php",true); } else { if($autodel==0) $uninstallf = base64_encode($dm->GetSystemFile($hashcode,'uninstall')); } if(trim($setupsql40)=='') $setupsql40 = ''; else $setupsql40 = base64_encode(htmlspecialchars_decode(trim($setupsql40))); //if(trim($setupsql41)=='') $setupsql41 = ''; //else $setupsql41 = base64_encode(trim($setupsql41)); if(trim($delsql)=='') $delsql = ''; else $delsql = base64_encode(strip_tags(trim($delsql))); $modulinfo = " name={$modulname} team={$team} time={$mtime} email={$email} url={$url} hash={$hashcode} indexname={$indexname} indexurl={$indexurl} ismember={$ismember} autosetup={$autosetup} autodel={$autodel} lang={$lang} moduletype={$moduletype} $menustring {$readmef} $setupsql40 $delsql {$setupf} {$uninstallf} $filelist "; if($rebuild=='yes') { $filelists = explode("\n", $filelist); foreach($filelists as $v) { $v = trim($v); if(!empty($v)) $dm->MakeEncodeFileTest(dirname(__FILE__),$v); } //测试无误后编译安装包 $fp = fopen($moduleFilename, 'w'); fwrite($fp, $modulinfo."\r\n"); fwrite($fp, "\r\n"); foreach($filelists as $v) { $v = trim($v); if(!empty($v)) $dm->MakeEncodeFile(dirname(__FILE__),$v,$fp); } fwrite($fp,"\r\n"); fwrite($fp,"\r\n"); fclose($fp); } else { $fxml = $dm->GetFileXml($hashcode); $fp = fopen($moduleFilename, 'w'); fwrite($fp, $modulinfo."\r\n"); fwrite($fp, $fxml); fclose($fp); } ShowMsg("成功对模块重新编译!", "module_main.php"); exit(); } //ClearAllLink();