fetch1("select tbname,intb from {$dbtbpre}enewstable where tid='$tid'"); if(!$tr[tbname]) { printerror("EmptyTbname",""); } $num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewstable where tbname='$newtbname' limit 1"); if($num) { printerror("ReTbname","history.go(-1)"); } $sql=$empire->query("insert into {$dbtbpre}enewstable(tbname,tname,tsay,isdefault,datatbs,deftb,yhid,mid,intb) values('$newtbname','$add[tname]','$add[tsay]',0,',1,','1','$add[yhid]',0,'$tr[intb]');"); $newtid=$empire->lastid(); //复制表 CopyEcmsTb($dbtbpre."ecms_".$tr['tbname'],$dbtbpre."ecms_".$newtbname); //内容表 CopyEcmsTb($dbtbpre."ecms_".$tr['tbname']."_data_1",$dbtbpre."ecms_".$newtbname."_data_1"); //内容副表 CopyEcmsTb($dbtbpre."ecms_".$tr['tbname']."_index",$dbtbpre."ecms_".$newtbname."_index"); //内容索引表 CopyEcmsTb($dbtbpre."ecms_".$tr['tbname']."_doc",$dbtbpre."ecms_".$newtbname."_doc"); //归档表 CopyEcmsTb($dbtbpre."ecms_".$tr['tbname']."_doc_data",$dbtbpre."ecms_".$newtbname."_doc_data"); //归档副表 CopyEcmsTb($dbtbpre."ecms_".$tr['tbname']."_doc_index",$dbtbpre."ecms_".$newtbname."_doc_index"); //归档索引表 CopyEcmsTb($dbtbpre."ecms_".$tr['tbname']."_check",$dbtbpre."ecms_".$newtbname."_check"); //审核表 CopyEcmsTb($dbtbpre."ecms_".$tr['tbname']."_check_data",$dbtbpre."ecms_".$newtbname."_check_data"); //审核副表 CopyEcmsTb($dbtbpre."ecms_infoclass_".$tr['tbname'],$dbtbpre."ecms_infoclass_".$newtbname); //采集节点附加表 CopyEcmsTb($dbtbpre."ecms_infotmp_".$tr['tbname'],$dbtbpre."ecms_infotmp_".$newtbname); //采集数据临时表 //字段数据 $fsql=$empire->query("select * from {$dbtbpre}enewsf where tid=$tid order by fid"); while($fr=$empire->fetch($fsql)) { $usql=$empire->query("insert into {$dbtbpre}enewsf(f,fname,fform,fhtml,fzs,isadd,isshow,iscj,cjhtml,myorder,ftype,flen,dotemp,tid,tbname,savetxt,fvalue,iskey,tobr,dohtml,qfhtml,isonly,linkfieldval,samedata,fformsize,tbdataf,ispage,adddofun,editdofun,qadddofun,qeditdofun,linkfieldtb,linkfieldshow,editorys,issmalltext,fmvnum) values('$fr[f]','$fr[fname]','$fr[fform]','".addslashes(addslashes(stripSlashes($fr['fhtml'])))."','".addslashes(stripSlashes($fr[fzs]))."',$fr[isadd],$fr[isshow],$fr[iscj],'".addslashes(addslashes(stripSlashes($fr[cjhtml])))."',$fr[myorder],'$fr[ftype]','$fr[flen]',$fr[dotemp],$newtid,'$newtbname',$fr[savetxt],'".addslashes(addslashes(stripSlashes($fr[fvalue])))."',$fr[iskey],$fr[tobr],$fr[dohtml],'".addslashes(addslashes(stripSlashes($fr[qfhtml])))."','$fr[isonly]','".addslashes(stripSlashes($fr[linkfieldval]))."','$fr[samedata]','".addslashes(stripSlashes($fr[fformsize]))."','$fr[tbdataf]','$fr[ispage]','".addslashes(stripSlashes($fr[adddofun]))."','".addslashes(stripSlashes($fr[editdofun]))."','".addslashes(stripSlashes($fr[qadddofun]))."','".addslashes(stripSlashes($fr[qeditdofun]))."','".addslashes(stripSlashes($fr[linkfieldtb]))."','".addslashes(stripSlashes($fr[linkfieldshow]))."','$fr[editorys]','$fr[issmalltext]','".addslashes(stripSlashes($fr[fmvnum]))."');"); } TogSaveTxtF(1);//公共变量 GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("tid=".$tid."
tb=".$tr[tbname]."
newtid=".$newtid."
newtb=".$newtbname); printerror("CopyTbSuccess","db/ListTable.php".hReturnEcmsHashStrHref2(1)); } else { printerror("DbError",""); } } //建立数据表 function AddTable($add,$userid,$username){ global $empire,$dbtbpre; $add[tbname]=RepPostVar(strtolower(trim($add[tbname]))); if(!$add[tbname]||!$add[tname]) { printerror("EmptyTbname","history.go(-1)"); } //操作权限 CheckLevel($userid,$username,$classid,"table"); $add[yhid]=(int)$add[yhid]; $add['intb']=(int)$add['intb']; $add['tname']=hRepPostStr($add['tname'],1); $add['tsay']=hRepPostStr($add['tsay'],1); $num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewstable where tbname='$add[tbname]' limit 1"); if($num) { printerror("ReTbname","history.go(-1)"); } $sql=$empire->query("insert into {$dbtbpre}enewstable(tbname,tname,tsay,isdefault,datatbs,deftb,yhid,intb) values('$add[tbname]','$add[tname]','$add[tsay]',0,',1,','1','$add[yhid]','$add[intb]');"); $tid=$empire->lastid(); //初使化表 AddTableDefault($add[tbname],$tid); GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("tid=".$tid."
tbname=".$add[tbname]); printerror("AddTbSuccess","db/AddTable.php?enews=AddTable".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //修改数据表 function EditTable($add,$userid,$username){ global $empire,$dbtbpre; $add[tbname]=RepPostVar(strtolower(trim($add[tbname]))); $tid=(int)$add[tid]; if(!$add[tbname]||!$add[tname]||!$tid) { printerror("EmptyTbname","history.go(-1)"); } //操作权限 CheckLevel($userid,$username,$classid,"table"); $add[yhid]=(int)$add[yhid]; $add['intb']=(int)$add['intb']; $add['tname']=hRepPostStr($add['tname'],1); $add['tsay']=hRepPostStr($add['tsay'],1); //改变数据表名 if($add[tbname]!=$add[oldtbname]) { $add[oldtbname]=RepPostVar($add[oldtbname]); $tbnum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewstable where tbname='$add[tbname]' and tid<>$tid limit 1"); if($tbnum) { printerror("ReTbname","history.go(-1)"); } $tbr=$empire->fetch1("select tid,isdefault,datatbs,deftb from {$dbtbpre}enewstable where tid='$tid' limit 1"); if(!$tbr['tid']) { printerror("EmptyTbname","history.go(-1)"); } //主表 $empire->query("ALTER TABLE `{$dbtbpre}ecms_".$add[oldtbname]."` RENAME `{$dbtbpre}ecms_".$add[tbname]."`;"); //索引表 $empire->query("ALTER TABLE `{$dbtbpre}ecms_".$add[oldtbname]."_index` RENAME `{$dbtbpre}ecms_".$add[tbname]."_index`;"); //副表 if($tbr['datatbs']) { $dtbr=explode(',',$tbr['datatbs']); $count=count($dtbr); for($i=1;$i<$count-1;$i++) { $empire->query("ALTER TABLE `{$dbtbpre}ecms_".$add[oldtbname]."_data_".$dtbr[$i]."` RENAME `{$dbtbpre}ecms_".$add[tbname]."_data_".$dtbr[$i]."`;"); } } //归档表 $empire->query("ALTER TABLE `{$dbtbpre}ecms_".$add[oldtbname]."_doc` RENAME `{$dbtbpre}ecms_".$add[tbname]."_doc`;"); $empire->query("ALTER TABLE `{$dbtbpre}ecms_".$add[oldtbname]."_doc_data` RENAME `{$dbtbpre}ecms_".$add[tbname]."_doc_data`;"); $empire->query("ALTER TABLE `{$dbtbpre}ecms_".$add[oldtbname]."_doc_index` RENAME `{$dbtbpre}ecms_".$add[tbname]."_doc_index`;"); //审核表 $empire->query("ALTER TABLE `{$dbtbpre}ecms_".$add[oldtbname]."_check` RENAME `{$dbtbpre}ecms_".$add[tbname]."_check`;"); $empire->query("ALTER TABLE `{$dbtbpre}ecms_".$add[oldtbname]."_check_data` RENAME `{$dbtbpre}ecms_".$add[tbname]."_check_data`;"); //采集 $empire->query("ALTER TABLE `{$dbtbpre}ecms_infoclass_".$add[oldtbname]."` RENAME `{$dbtbpre}ecms_infoclass_".$add[tbname]."`;"); $empire->query("ALTER TABLE `{$dbtbpre}ecms_infotmp_".$add[oldtbname]."` RENAME `{$dbtbpre}ecms_infotmp_".$add[tbname]."`;"); //字段 $empire->query("update {$dbtbpre}enewsf set tbname='$add[tbname]' where tid='$tid'"); //栏目 $empire->query("update {$dbtbpre}enewsclass set tbname='$add[tbname]' where tid='$tid'"); //$empire->query("update {$dbtbpre}enewszt set tbname='$add[tbname]' where tid='$tid'"); $empire->query("update {$dbtbpre}enewsinfoclass set tbname='$add[tbname]' where tid='$tid'"); $empire->query("update {$dbtbpre}enewsmod set tbname='$add[tbname]' where tid='$tid'"); $empire->query("update {$dbtbpre}enewsinfotype set tbname='$add[tbname]' where tid='$tid'"); //搜索 $empire->query("update {$dbtbpre}enewssearch set tbname='$add[tbname]' where tbname='$add[oldtbname]'"); $empire->query("update {$dbtbpre}enewssearchall_load set tbname='$add[tbname]' where tbname='$add[oldtbname]'"); //默认表 if($tbr['isdefault']) { $empire->query("update {$dbtbpre}enewspublic set tbname='$add[tbname]',tid='$tid'"); } //文本型 TogSaveTxtF(1); } $sql=$empire->query("update {$dbtbpre}enewstable set tbname='$add[tbname]',tname='$add[tname]',tsay='$add[tsay]',yhid='$add[yhid]',intb='$add[intb]' where tid='$tid'"); GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("tid=".$tid."
tbname=".$add[tbname]); printerror("EditTbSuccess","db/ListTable.php".hReturnEcmsHashStrHref2(1)); } else { printerror("DbError","history.go(-1)"); } } //删除数据表 function DelTable($tid,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$tid; if(!$tid) { printerror("NotChangeTb",""); } //操作权限 CheckLevel($userid,$username,$classid,"table"); $r=$empire->fetch1("select tid,tbname,isdefault,datatbs,deftb from {$dbtbpre}enewstable where tid='$tid'"); if(empty($r[tid])) { printerror("NotChangeTb",""); } //默认表 if($r['isdefault']) { printerror("NotDelDefaultTb",""); } $sql=$empire->query("delete from {$dbtbpre}enewstable where tid='$tid'"); //删除数据表 $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$r[tbname].";"); $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$r[tbname]."_index;"); if($r['datatbs']) { $dtbr=explode(',',$r['datatbs']); $count=count($dtbr); for($i=1;$i<$count-1;$i++) { $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$r[tbname]."_data_".$dtbr[$i].";"); } } //删除采集表 $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_infoclass_".$r[tbname].";"); $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_infotmp_".$r[tbname].";"); //删除归档表 $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$r[tbname]."_doc;"); $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$r[tbname]."_doc_data;"); $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$r[tbname]."_doc_index;"); //删除审核表 $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$r[tbname]."_check;"); $empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$r[tbname]."_check_data;"); //删除数据 $empire->query("delete from {$dbtbpre}enewsf where tid='$tid'"); $empire->query("delete from {$dbtbpre}enewsmod where tid='$tid'"); $empire->query("delete from {$dbtbpre}enewsinfoclass where tid='$tid'"); //文本型 TogSaveTxtF(1); GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("tid=".$tid."
tbname=".$r[tbname]); printerror("DelTbSuccess","db/ListTable.php".hReturnEcmsHashStrHref2(1)); } else { printerror("DbError","history.go(-1)"); } } //默认数据表 function DefaultTable($tid,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$tid; if(!$tid) { printerror("NotChangeDefaultTb","history.go(-1)"); } //操作权限 CheckLevel($userid,$username,$classid,"table"); $r=$empire->fetch1("select tid,tbname from {$dbtbpre}enewstable where tid='$tid'"); if(empty($r[tid])) { printerror("NotChangeDefaultTb","history.go(-1)"); } $usql=$empire->query("update {$dbtbpre}enewstable set isdefault=0"); $sql=$empire->query("update {$dbtbpre}enewstable set isdefault=1 where tid='$tid'"); $upsql=$empire->query("update {$dbtbpre}enewspublic set tbname='$r[tbname]',tid='$tid'"); GetConfig(1);//更新缓存 if($sql&&$usql&&$upsql) { //操作日志 insert_dolog("tid=".$tid."
tbname=".$r[tbname]); printerror("DefaultTableSuccess","db/ListTable.php".hReturnEcmsHashStrHref2(1)); } else { printerror("DbError","history.go(-1)"); } } //增加副表分表 function AddDataTable($add,$userid,$username){ global $empire,$dbtbpre; //操作权限 CheckLevel($userid,$username,$classid,"table"); $tid=(int)$add['tid']; $tbname=RepPostVar($add['tbname']); $datatb=(int)$add['datatb']; if(!$tid||!$tbname||!$datatb) { printerror("EmptyDataTable","history.go(-1)"); } $tr=$empire->fetch1("select tid,datatbs from {$dbtbpre}enewstable where tid='$tid'"); if(!$tr['tid']) { printerror("EmptyDataTable","history.go(-1)"); } if(strstr($tr['datatbs'],','.$datatb.',')) { printerror("ReDataTable","history.go(-1)"); } if(empty($tr['datatbs'])) { $tr['datatbs']=','; } $newdatatbs=$tr['datatbs'].$datatb.','; //建表 $odtb=$dbtbpre."ecms_".$tbname."_data_1"; $dtb=$dbtbpre."ecms_".$tbname."_data_".$datatb; CopyEcmsTb($odtb,$dtb); $sql=$empire->query("update {$dbtbpre}enewstable set datatbs='$newdatatbs' where tid='$tid'"); GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("tid=".$tid."
tbname=".$tbname."&datatb=$datatb"); printerror("AddDataTableSuccess","db/ListDataTable.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //默认副表存放表 function DefDataTable($add,$userid,$username){ global $empire,$dbtbpre; //操作权限 CheckLevel($userid,$username,$classid,"table"); $tid=(int)$add['tid']; $tbname=RepPostVar($add['tbname']); $datatb=(int)$add['datatb']; if(!$tid||!$tbname||!$datatb) { printerror("NotChangeDataTable","history.go(-1)"); } $tr=$empire->fetch1("select tid,datatbs from {$dbtbpre}enewstable where tid='$tid'"); if(!$tr['tid']) { printerror("NotChangeDataTable","history.go(-1)"); } if(!strstr($tr['datatbs'],','.$datatb.',')) { printerror("NotChangeDataTable","history.go(-1)"); } $sql=$empire->query("update {$dbtbpre}enewstable set deftb='$datatb' where tid='$tid'"); GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("tid=".$tid."
tbname=".$tbname."&datatb=$datatb"); printerror("DefDataTableSuccess","db/ListDataTable.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //删除副表分表 function DelDataTable($add,$userid,$username){ global $empire,$dbtbpre,$emod_r,$class_r; //操作权限 CheckLevel($userid,$username,$classid,"table"); $tid=(int)$add['tid']; $tbname=RepPostVar($add['tbname']); $datatb=(int)$add['datatb']; if(!$tid||!$tbname||!$datatb) { printerror("NotChangeDataTable","history.go(-1)"); } $tr=$empire->fetch1("select tid,tbname,datatbs,deftb from {$dbtbpre}enewstable where tid='$tid'"); if(!$tr['tid']) { printerror("NotChangeDataTable","history.go(-1)"); } if(!strstr($tr['datatbs'],','.$datatb.',')) { printerror("NotChangeDataTable","history.go(-1)"); } if($tr['deftb']==$datatb||$datatb==1) { printerror("NotDelDefDataTable","history.go(-1)"); } $newdatatbs=str_replace(','.$datatb.',',',',$tr['datatbs']); $sql=$empire->query("update {$dbtbpre}enewstable set datatbs='$newdatatbs' where tid='$tid'"); //删除信息 $infosql=$empire->query("select * from {$dbtbpre}ecms_".$tr[tbname]." where stb='$datatb'"); while($infor=$empire->fetch($infosql)) { $mid=$class_r[$infor[classid]]['modid']; $pf=$emod_r[$mid]['pagef']; $stf=$emod_r[$mid]['savetxtf']; //分页字段 if($pf) { if(strstr($emod_r[$mid]['tbdataf'],','.$pf.',')) { $finfor=$empire->fetch1("select ".$pf." from {$dbtbpre}ecms_".$tr[tbname]."_data_".$datatb." where id='$infor[id]'"); $infor[$pf]=$finfor[$pf]; } } //存文本 if($stf) { $newstextfile=$infor[$stf]; $infor[$stf]=GetTxtFieldText($infor[$stf]); DelTxtFieldText($newstextfile);//删除文件 } //删除信息文件 DelNewsFile($infor[filename],$infor[newspath],$infor[classid],$infor[$pf],$infor[groupid]); //删除主表信息 $empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]."_index where id='$infor[id]'"); //删除其它表记录和附件 DelSingleInfoOtherData($infor[classid],$infor[id],$infor,0,0); } $deltb=$empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]." where stb='$datatb'"); //删除归档信息 $docinfosql=$empire->query("select * from {$dbtbpre}ecms_".$tr[tbname]."_doc where stb='$datatb'"); while($infor=$empire->fetch($docinfosql)) { $mid=$class_r[$infor[classid]]['modid']; $pf=$emod_r[$mid]['pagef']; $stf=$emod_r[$mid]['savetxtf']; //分页字段 if($pf) { if(strstr($emod_r[$mid]['tbdataf'],','.$pf.',')) { $finfor=$empire->fetch1("select ".$pf." from {$dbtbpre}ecms_".$tr[tbname]."_doc_data where id='$infor[id]'"); $infor[$pf]=$finfor[$pf]; } } //存文本 if($stf) { $newstextfile=$infor[$stf]; $infor[$stf]=GetTxtFieldText($infor[$stf]); DelTxtFieldText($newstextfile);//删除文件 } //删除信息文件 DelNewsFile($infor[filename],$infor[newspath],$infor[classid],$infor[$pf],$infor[groupid]); //删除主表信息 $empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]."_doc_index where id='$infor[id]'"); //删除副表信息 $empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]."_doc_data where id='$infor[id]'"); //删除其它表记录与附件 DelSingleInfoOtherData($infor['classid'],$infor['id'],$infor,0,0); } $deltb=$empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]."_doc where stb='$datatb'"); //删除审核信息 $bakinfosql=$empire->query("select * from {$dbtbpre}ecms_".$tr[tbname]."_check where stb='$datatb'"); while($infor=$empire->fetch($bakinfosql)) { $mid=$class_r[$infor[classid]]['modid']; $pf=$emod_r[$mid]['pagef']; $stf=$emod_r[$mid]['savetxtf']; //分页字段 if($pf) { if(strstr($emod_r[$mid]['tbdataf'],','.$pf.',')) { $finfor=$empire->fetch1("select ".$pf." from {$dbtbpre}ecms_".$tr[tbname]."_check_data where id='$infor[id]'"); $infor[$pf]=$finfor[$pf]; } } //存文本 if($stf) { $newstextfile=$infor[$stf]; $infor[$stf]=GetTxtFieldText($infor[$stf]); DelTxtFieldText($newstextfile);//删除文件 } //删除信息文件 DelNewsFile($infor[filename],$infor[newspath],$infor[classid],$infor[$pf],$infor[groupid]); //删除主表信息 $empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]."_index where id='$infor[id]'"); //删除副表信息 $empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]."_check_data where id='$infor[id]'"); //删除其它表记录和附件 DelSingleInfoOtherData($infor['classid'],$infor['id'],$infor,0,0); } $deltb=$empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]."_check where stb='$datatb'"); //删除表 $deltb=$empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$tr[tbname]."_data_".$datatb.";"); GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("tid=".$tid."
tbname=".$tr[tbname]."&datatb=$datatb"); printerror("DelDataTableSuccess","db/ListDataTable.php?tid=$tid&tbname=$tr[tbname]".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //************************************ 字段 ************************************ //返回字段值 function ReturnFvalue($value){ $value=str_replace("\r\n","|",$value); return $value; } //取得表单元素html代码 function GetFform($type,$f,$fvalue,$linkfieldval,$fformsize='',$add){ if($type=="select"||$type=="radio"||$type=="checkbox") { return GetFformSelect($type,$f,$fvalue,$fformsize); } $file="../data/html/fhtml.txt"; $data=ReadFiletext($file); //特殊字段 if($f=="newstext"||$f=="writer"||$f=="befrom"||$f=="downpath"||$f=="onlinepath"||$f=="morepic"||$f=="playerid") { $type=$f; } $exp="[!--".$type."--]"; $r=explode($exp,$data); $string=str_replace("[!--enews.var--]",$f,$r[1]); $string=str_replace("[!--enews.def.val--]",$fvalue,$string); if($type=='linkfield')//选择外表关联字段 { $string=str_replace("[!--enews.cfield.var--]",$add[linkfieldval],$string); $string=str_replace("[!--enews.vfield.var--]",$add[linkfieldshow],$string); $string=str_replace("[!--enews.ctbname--]",$add[linkfieldtb],$string); } elseif($type=='linkfieldselect')//下拉外表关联字段 { $selectf=$add[linkfieldval]==$add[linkfieldshow]?$add[linkfieldval]:$add[linkfieldval].','.$add[linkfieldshow]; $string=str_replace("[!--enews.cfield.var--]",$add[linkfieldval],$string); $string=str_replace("[!--enews.vfield.var--]",$add[linkfieldshow],$string); $string=str_replace("[!--enews.ctbname--]",$add[linkfieldtb],$string); $string=str_replace("[!--enews.selectf--]",$selectf,$string); } elseif($type=='editor'||$type=='newstext')//编辑器 { $editortype=$add[editorys]==0?'Default':'Basic'; $string=str_replace("[!--editor.type--]",$editortype,$string); $string=str_replace("[!--editor.basepath--]",'',$string); } elseif($type=='morevaluefield')//多值字段 { $mvr=explode(',',$add['fmvnum']); $mv_var=ReturnMoreValueFieldHtmlVar($f,$mvr[0],$mvr[1],$mvr[2]); $string=str_replace("[!--enews.jstr--]",$mv_var['jstr'],$string); $string=str_replace("[!--enews.saytr--]",$mv_var['saytr'],$string); $string=str_replace("[!--enews.deftr--]",$mv_var['deftr'],$string); $string=str_replace("[!--enews.edittr--]",$mv_var['edittr'],$string); $string=str_replace("[!--enews.mvline--]",$mvr[1],$string); $string=str_replace("[!--enews.mvnum--]",$mvr[0],$string); $string=str_replace("[!--enews.mvmust--]",$mvr[2],$string); } $string=RepFformSize($f,$string,$type,$fformsize); return fAddAddsData($string); } //取得采集表单元素html代码 function GetCjform($type,$f){ $file="../data/html/cjhtml.txt"; $data=ReadFiletext($file); //特殊字段 if($f=="downpath"||$f=="onlinepath"||$f=="morepic"||$f=="playerid") { $type=$f; } if($type=="password"||$type=="select"||$type=="radio"||$type=="checkbox"||$type=="date"||$type=="color"||$type=="linkfield"||$type=="editor"||$type=="ubbeditor"||$type=="linkfieldselect"||$type=="morevaluefield"||$type=="datetime") { $type="text"; } $exp="[!--".$type."--]"; $r=explode($exp,$data); $string=str_replace("[!--enews.var--]",$f,$r[1]); return fAddAddsData($string); } //取得投稿表单元素html代码 function GetQFform($type,$f,$fvalue,$fformsize='',$add){ if($type=="select"||$type=="radio"||$type=="checkbox") { return GetFformSelect($type,$f,$fvalue,$fformsize); } $file="../data/html/qfhtml.txt"; $data=ReadFiletext($file); //特殊字段 if($f=="newstext"||$f=="downpath"||$f=="onlinepath"||$f=="morepic"||$f=="playerid") { $type=$f; } $exp="[!--".$type."--]"; $r=explode($exp,$data); $string=str_replace("[!--enews.var--]",$f,$r[1]); $string=str_replace("[!--enews.def.val--]",$fvalue,$string); if($type=='linkfield')//选择外表关联字段 { $string=str_replace("[!--enews.cfield.var--]",$add[linkfieldval],$string); $string=str_replace("[!--enews.vfield.var--]",$add[linkfieldshow],$string); $string=str_replace("[!--enews.ctbname--]",$add[linkfieldtb],$string); } elseif($type=='linkfieldselect')//下拉外表关联字段 { $selectf=$add[linkfieldval]==$add[linkfieldshow]?$add[linkfieldval]:$add[linkfieldval].','.$add[linkfieldshow]; $string=str_replace("[!--enews.cfield.var--]",$add[linkfieldval],$string); $string=str_replace("[!--enews.vfield.var--]",$add[linkfieldshow],$string); $string=str_replace("[!--enews.ctbname--]",$add[linkfieldtb],$string); $string=str_replace("[!--enews.selectf--]",$selectf,$string); } elseif($type=='editor'||$type=='newstext')//编辑器 { $editortype=$add[editorys]==0?'Default':'Basic'; $string=str_replace("[!--editor.type--]",$editortype,$string); $string=str_replace("[!--editor.basepath--]",'',$string); } elseif($type=='morevaluefield')//多值字段 { $mvr=explode(',',$add['fmvnum']); $mv_var=ReturnMoreValueFieldHtmlVar($f,$mvr[0],$mvr[1],$mvr[2]); $string=str_replace("[!--enews.jstr--]",$mv_var['jstr'],$string); $string=str_replace("[!--enews.saytr--]",$mv_var['saytr'],$string); $string=str_replace("[!--enews.deftr--]",$mv_var['deftr'],$string); $string=str_replace("[!--enews.edittr--]",$mv_var['edittr'],$string); $string=str_replace("[!--enews.mvline--]",$mvr[1],$string); $string=str_replace("[!--enews.mvnum--]",$mvr[0],$string); $string=str_replace("[!--enews.mvmust--]",$mvr[2],$string); } $string=RepFformSize($f,$string,$type,$fformsize); return fAddAddsData($string); } //取得select/radio元素代码 function GetFformSelect($type,$f,$fvalue,$fformsize=''){ $vr=explode('|',$fvalue); $count=count($vr); $change=''; $def=':default'; for($i=0;$i<$count;$i++) { $isdef=''; if(strstr($vr[$i],$def)) { $dr=explode($def,$vr[$i]); $vr[$i]=$dr[0]; $isdef="||\$ecmsfirstpost==1"; } $selectvalr=explode('==',$vr[$i]); $val=$selectvalr[0]; $valname=$selectvalr[1]?$selectvalr[1]:$selectvalr[0]; if($type=='select') { $change.=""; } elseif($type=='checkbox') { $change.=">".$valname; } else { $change.=">".$valname; } } if($type=="select") { if($fformsize) { $addsize=' style="width:'.$fformsize.'"'; } $change=""; } return $change; } //替换表单元素长度 function RepFformSize($f,$string,$type,$fformsize=''){ $fformsize=ReturnDefFformSize($f,$type,$fformsize); if($type=='textarea'||$type=='editor'||$type=='ubbeditor'||$type=='newstext') { $r=explode(',',$fformsize); $string=str_replace('[!--fsize.w--]',$r[0],$string); $string=str_replace('[!--fsize.h--]',$r[1],$string); } else { $string=str_replace('[!--fsize.w--]',$fformsize,$string); } return $string; } //返回默认长度 function ReturnDefFformSize($f,$type,$fformsize){ if(empty($fformsize)) { if($type=='textarea') { $fformsize='60,10'; } elseif($type=='img') { $fformsize='45'; } elseif($type=='file') { $fformsize='45'; } elseif($type=='flash') { $fformsize='45'; } elseif($type=='date') { $fformsize='12'; } elseif($type=='datetime') { $fformsize='28'; } elseif($type=='color') { $fformsize='10'; } elseif($type=='linkfield') { $fformsize='45'; } elseif($type=='downpath') { $fformsize='45'; } elseif($type=='onlinepath') { $fformsize='45'; } elseif($type=='editor'||$type=='newstext') { $fformsize='100%,300'; } elseif($type=='ubbeditor') { $fformsize='60,10'; } } return $fformsize; } //返回多值字段录入项html代码变量 function ReturnMoreValueFieldHtmlVar($f,$mvnum,$mvline,$mvmust){ global $fun_r; $del=' '.$fun_r['FSingleDel']; $saytr=''; $jstr=''; $deftr=''; $edittr=''; for($i=0;$i<$mvnum;$i++) { $j=$i+1; //描述 $saytr.=''.$fun_r['FSetting'].$j.''; //JS $jstr.=''; //默认 $deftr.=''; //修改 $edittr.=''.($i==0?$del:'').''; } $saytr.=''; $jstr.=''; $deftr.=''; $edittr.=''; $r['saytr']=$saytr; $r['jstr']=$jstr; $r['deftr']=$deftr; $r['edittr']=$edittr; return $r; } //返回字段变量 function DoPostFVar($add){ $add['tid']=(int)$add['tid']; $add['tbname']=RepPostVar($add['tbname']); $add['f']=RepPostVar($add['f']); //处理变量 $add[iscj]=(int)$add[iscj]; $add[myorder]=(int)$add[myorder]; $add[savetxt]=(int)$add[savetxt]; $add[iskey]=(int)$add[iskey]; $add[tobr]=(int)$add[tobr]; $add[dohtml]=(int)$add[dohtml]; $add[isonly]=(int)$add[isonly]; $add[samedata]=(int)$add[samedata]; $add[tbdataf]=(int)$add[tbdataf]; $add[ispage]=(int)$add[ispage]; $add[editorys]=(int)$add[editorys]; $add[issmalltext]=(int)$add[issmalltext]; if($add[fform]=='textarea'||$add[fform]=='editor') { if($add[fformwidth]||$add[fformheight]) { $add['fformsize']=$add[fformwidth].','.$add[fformheight]; } } if($add[fform]=='morevaluefield') { $add['fmvnum']=intval($add['fmvnum']).','.intval($add['fmvline']).','.intval($add['fmvmust']); } else { $add['fmvnum']=''; } $add['fname']=hRepPostStr($add['fname'],1); $add['fform']=hRepPostStr($add['fform'],1); $add['fzs']=hRepPostStr($add['fzs'],1); $add['ftype']=hRepPostStr($add['ftype'],1); $add['flen']=hRepPostStr($add['flen'],1); $add['linkfieldval']=hRepPostStr($add['linkfieldval'],1); $add['fformsize']=hRepPostStr($add['fformsize'],1); $add['adddofun']=hRepPostStr($add['adddofun'],0); $add['editdofun']=hRepPostStr($add['editdofun'],0); $add['qadddofun']=hRepPostStr($add['qadddofun'],0); $add['qeditdofun']=hRepPostStr($add['qeditdofun'],0); $add['linkfieldtb']=hRepPostStr($add['linkfieldtb'],1); $add['linkfieldshow']=hRepPostStr($add['linkfieldshow'],1); $add['fmvnum']=hRepPostStr($add['fmvnum'],1); return $add; } //验证字段是否重复 function CheckReTbF($add,$ecms=0){ global $empire,$dbtbpre; $specialf=',oldurl,tmptime,smallurl,newsurl,titlepicl,'; if(stristr($specialf,','.$add[f].',')) { printerror("ReF","history.go(-1)"); } //修改 if($ecms==1&&$add[f]==$add[oldf]) { return ''; } //主表 $s=$empire->query("SHOW FIELDS FROM {$dbtbpre}ecms_".$add[tbname]); $b=0; while($r=$empire->fetch($s)) { if($r[Field]==$add[f]) { $b=1; break; } } if($b) { printerror("ReF","history.go(-1)"); } //副表 $s=$empire->query("SHOW FIELDS FROM {$dbtbpre}ecms_".$add[tbname]."_data_1"); $b=0; while($r=$empire->fetch($s)) { if($r[Field]==$add[f]) { $b=1; break; } } if($b) { printerror("ReF","history.go(-1)"); } //索引表 $s=$empire->query("SHOW FIELDS FROM {$dbtbpre}ecms_".$add[tbname]."_index"); $b=0; while($r=$empire->fetch($s)) { if($r[Field]==$add[f]) { $b=1; break; } } if($b) { printerror("ReF","history.go(-1)"); } } //返回字段类型 function ReturnTbFtype($add){ if($add[ftype]=="TINYINT"||$add[ftype]=="SMALLINT"||$add[ftype]=="INT"||$add[ftype]=="BIGINT"||$add[ftype]=="FLOAT"||$add[ftype]=="DOUBLE") { $def=" default '0'"; } elseif($add[ftype]=="VARCHAR"||$add[ftype]=="CHAR") { $def=" default ''"; } elseif($add[ftype]=="DATE") { $def=" default '0000-00-00'"; } elseif($add[ftype]=="DATETIME") { $def=" default '0000-00-00 00:00:00'"; } else { $def=''; } $type=$add[ftype]; //VARCHAR if(($add[ftype]=='VARCHAR'||$add[ftype]=='CHAR')&&empty($add[flen])) { $add[flen]='255'; } //字段长度 if($add[flen]) { if($add[ftype]!="TEXT"&&$add[ftype]!="MEDIUMTEXT"&&$add[ftype]!="LONGTEXT"&&$add[ftype]!="DATE"&&$add[ftype]!="DATETIME") { $type.="(".$add[flen].")"; } } $field=$add[f]." ".$type." NOT NULL".$def; return $field; } //增加字段 function AddF($add,$userid,$username){ global $empire,$dbtbpre; $add=DoPostFVar($add); $tid=$add[tid]; $tbname=$add[tbname]; if(empty($add[f])||empty($add[fname])||!$add[tid]||!$add[tbname]) { printerror("EmptyF","history.go(-1)"); } CheckLevel($userid,$username,$classid,"f");//验证权限 CheckReTbF($add,0);//字段是否重复 //存文本 if($add[savetxt]==1) { $txtnum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsf where savetxt=1 and tid='$tid'"); if($txtnum) { printerror('ReTxtF',''); } } //分页 if($add['ispage']==1) { $pagenum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsf where ispage=1 and tid='$tid'"); if($pagenum) { printerror('RePageF',''); } } $add[fvalue]=ReturnFvalue($add[fvalue]);//初始化值 $field=ReturnTbFtype($add);//返回字段 //信息表新增字段 if($add[tbdataf]==1)//附加表 { $tbr=$empire->fetch1("select datatbs from {$dbtbpre}enewstable where tid='$tid'"); if($tbr['datatbs']) { $dtbr=explode(',',$tbr['datatbs']); $count=count($dtbr); for($i=1;$i<$count-1;$i++) { $empire->query("alter table {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." add ".$field); if($add[iskey]==1)//索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." ADD INDEX(".$add[f].")"); } } } //归档副表 $asql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc_data add ".$field); if($add[iskey]==1)//索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc_data ADD INDEX(".$add[f].")"); } //审核副表 $asql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_check_data add ".$field); if($add[iskey]==1)//索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check_data ADD INDEX(".$add[f].")"); } } else//主表 { $asql=$empire->query("alter table {$dbtbpre}ecms_".$tbname." add ".$field); if($add[iskey]==1)//索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname." ADD INDEX(".$add[f].")"); } //归档主表 $asql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc add ".$field); if($add[iskey]==1)//索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc ADD INDEX(".$add[f].")"); } //审核主表 $asql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_check add ".$field); if($add[iskey]==1)//索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check ADD INDEX(".$add[f].")"); } } //采集表新增字段 if($add[iscj]==1) { $asql=$empire->query("alter table {$dbtbpre}ecms_infoclass_".$tbname." add zz_".$add[f]." text not null,add z_".$add[f]." varchar(255) not null,add qz_".$add[f]." varchar(255) not null,add save_".$add[f]." varchar(10) not null;"); $asql=$empire->query("alter table {$dbtbpre}ecms_infotmp_".$tbname." add ".$field); } //替换代码 $fhtml=GetFform($add[fform],$add[f],$add[fvalue],$add[linkfieldval],$add[fformsize],$add); $cjhtml=GetCjform($add[fform],$add[f]); $qfhtml=GetQFform($add[fform],$add[f],$add[fvalue],$add[fformsize],$add); $sql=$empire->query("insert into {$dbtbpre}enewsf(f,fname,fform,fhtml,fzs,isadd,isshow,iscj,cjhtml,myorder,ftype,flen,dotemp,tid,tbname,savetxt,fvalue,iskey,tobr,dohtml,qfhtml,isonly,linkfieldval,samedata,fformsize,tbdataf,ispage,adddofun,editdofun,qadddofun,qeditdofun,linkfieldtb,linkfieldshow,editorys,issmalltext,fmvnum) values('$add[f]','$add[fname]','$add[fform]','".eaddslashes2($fhtml)."','".eaddslashes($add[fzs])."',1,1,$add[iscj],'".eaddslashes2($cjhtml)."',$add[myorder],'$add[ftype]','$add[flen]',1,$tid,'$tbname',$add[savetxt],'".eaddslashes2($add[fvalue])."',$add[iskey],$add[tobr],$add[dohtml],'".eaddslashes2($qfhtml)."','$add[isonly]','".eaddslashes($add[linkfieldval])."','$add[samedata]','$add[fformsize]','$add[tbdataf]','$add[ispage]','$add[adddofun]','$add[editdofun]','$add[qadddofun]','$add[qeditdofun]','$add[linkfieldtb]','$add[linkfieldshow]','$add[editorys]','$add[issmalltext]','$add[fmvnum]');"); $lastid=$empire->lastid(); TogSaveTxtF(1);//公共变量 if($add[savetxt]==1&&$add[iscj]==1)//存放文本 { $tmpsql=$empire->query("alter table {$dbtbpre}ecms_infotmp_".$tbname." change ".$add[f]." ".$add[f]." mediumtext not null;"); } GetConfig(1);//更新缓存 if($sql) { insert_dolog("fid=".$lastid."
f=".$add[f]);//操作日志 printerror("AddFSuccess","db/AddF.php?enews=AddF&tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //修改数据库字段 function EditF($add,$userid,$username){ global $empire,$dbtbpre; $add=DoPostFVar($add); $tid=$add[tid]; $tbname=$add[tbname]; $add[fid]=(int)$add['fid']; if(empty($add[f])||empty($add[fname])||empty($add[fid])||!$tid||!$tbname) { printerror("EmptyF","history.go(-1)"); } CheckLevel($userid,$username,$classid,"f");//验证权限 //是否系统内部字段 $cr=$empire->fetch1("select * from {$dbtbpre}enewsf where fid='$add[fid]'"); if(empty($cr[isadd])) { printerror("NotIsAdd","history.go(-1)"); } CheckReTbF($add,1);//字段是否重复 //存文本 if($add[savetxt]==1&&!$cr[savetxt]) { $txtnum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsf where savetxt=1 and fid<>".$add[fid]." and tid='$tid'"); if($txtnum) { printerror('ReTxtF',''); } } //分页 if($add['ispage']==1&&!$cr[ispage]) { $pagenum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsf where ispage=1 and fid<>".$add[fid]." and tid='$tid'"); if($pagenum) { printerror('RePageF',''); } } $add[fvalue]=ReturnFvalue($add[fvalue]);//初始化值 //改变字段 if($cr[f]<>$add[f]||$add[iskey]<>$cr[iskey]||$cr[iscj]<>$add[iscj]||$cr[ftype]<>$add[ftype]||$cr[flen]<>$add[flen]) { $field=ReturnTbFtype($add);//返回字段 //信息表 if($cr[tbdataf]==1)//附加表 { $tbr=$empire->fetch1("select datatbs from {$dbtbpre}enewstable where tid='$tid'"); if($tbr['datatbs']) { $dtbr=explode(',',$tbr['datatbs']); $count=count($dtbr); for($i=1;$i<$count-1;$i++) { $empire->query("alter table {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." change ".$add[oldf]." ".$field); if($add[iskey]==1)//索引 { if($cr[iskey]==0) { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." ADD INDEX(".$add[f].")"); } } elseif($cr[iskey]==1&&$add[iskey]==0)//删除索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." DROP INDEX ".$add[oldf]); } } } //归档副表 $usql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc_data change ".$add[oldf]." ".$field); if($add[iskey]==1)//索引 { if($cr[iskey]==0) { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc_data ADD INDEX(".$add[f].")"); } } elseif($cr[iskey]==1&&$add[iskey]==0)//删除索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc_data DROP INDEX ".$add[oldf]); } //审核副表 $usql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_check_data change ".$add[oldf]." ".$field); if($add[iskey]==1)//索引 { if($cr[iskey]==0) { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check_data ADD INDEX(".$add[f].")"); } } elseif($cr[iskey]==1&&$add[iskey]==0)//删除索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check_data DROP INDEX ".$add[oldf]); } } else//主表 { $usql=$empire->query("alter table {$dbtbpre}ecms_".$tbname." change ".$add[oldf]." ".$field); if($add[iskey]==1)//索引 { if($cr[iskey]==0) { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname." ADD INDEX(".$add[f].")"); } } elseif($cr[iskey]==1&&$add[iskey]==0)//删除索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname." DROP INDEX ".$add[oldf]); } //归档主表 $usql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc change ".$add[oldf]." ".$field); if($add[iskey]==1)//索引 { if($cr[iskey]==0) { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc ADD INDEX(".$add[f].")"); } } elseif($cr[iskey]==1&&$add[iskey]==0)//删除索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc DROP INDEX ".$add[oldf]); } //审核主表 $usql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_check change ".$add[oldf]." ".$field); if($add[iskey]==1)//索引 { if($cr[iskey]==0) { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check ADD INDEX(".$add[f].")"); } } elseif($cr[iskey]==1&&$add[iskey]==0)//删除索引 { $keysql=$empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check DROP INDEX ".$add[oldf]); } } //采集表 if($add[iscj]==1) { if($cr[iscj]==1) { $empire->query("alter table {$dbtbpre}ecms_infotmp_".$tbname." change ".$add[oldf]." ".$field); $empire->query("alter table {$dbtbpre}ecms_infoclass_".$tbname." change zz_".$add[oldf]." zz_".$add[f]." text not null,change z_".$add[oldf]." z_".$add[f]." varchar(255) not null,change qz_".$add[oldf]." qz_".$add[f]." varchar(255) not null,change save_".$add[oldf]." save_".$add[f]." varchar(10) not null;"); } else { $empire->query("alter table {$dbtbpre}ecms_infoclass_".$tbname." add zz_".$add[f]." text not null,add z_".$add[f]." varchar(255) not null,add qz_".$add[f]." varchar(255) not null,add save_".$add[f]." varchar(10) not null;"); $empire->query("alter table {$dbtbpre}ecms_infotmp_".$tbname." add ".$field); } } elseif($add[iscj]==0&&$cr[iscj]==1) { $empire->query("alter table {$dbtbpre}ecms_infotmp_".$tbname." drop COLUMN ".$cr[f]); $empire->query("alter table {$dbtbpre}ecms_infoclass_".$tbname." drop COLUMN zz_".$cr[f].",drop COLUMN z_".$cr[f].",drop COLUMN qz_".$cr[f].",drop COLUMN save_".$cr[f]); } } //替换代码 if($add[f]<>$cr[f]||$add[fform]<>$cr[fform]||$add[fvalue]<>$add[oldfvalue]||$cr[linkfieldtb]<>$add[linkfieldtb]||$cr[linkfieldshow]<>$add[linkfieldshow]||$cr[editorys]<>$add[editorys]||$add[linkfieldval]<>$cr[linkfieldval]||$add[fformsize]<>$cr[fformsize]||$add[fmvnum]<>$cr[fmvnum]) { $fhtml=GetFform($add[fform],$add[f],$add[fvalue],$add[linkfieldval],$add[fformsize],$add); } else { $fhtml=$add[fhtml]; } $cjhtml=GetCjform($add[fform],$add[f]); if($add[f]<>$cr[f]||$add[fform]<>$cr[fform]||$add[fvalue]<>$add[oldfvalue]||$cr[linkfieldtb]<>$add[linkfieldtb]||$cr[linkfieldshow]<>$add[linkfieldshow]||$cr[editorys]<>$add[editorys]||$add[linkfieldval]<>$cr[linkfieldval]||$add[fformsize]<>$cr[fformsize]||$add[fmvnum]<>$cr[fmvnum]) { $qfhtml=GetQFform($add[fform],$add[f],$add[fvalue],$add[fformsize],$add); } else { $qfhtml=$add[qfhtml]; } $sql=$empire->query("update {$dbtbpre}enewsf set f='$add[f]',fname='$add[fname]',fform='$add[fform]',fhtml='".eaddslashes2($fhtml)."',fzs='".eaddslashes($add[fzs])."',iscj=$add[iscj],cjhtml='".eaddslashes2($cjhtml)."',myorder=$add[myorder],ftype='$add[ftype]',flen='$add[flen]',fvalue='".eaddslashes2($add[fvalue])."',iskey=$add[iskey],tobr=$add[tobr],dohtml=$add[dohtml],qfhtml='".eaddslashes2($qfhtml)."',isonly='$add[isonly]',linkfieldval='$add[linkfieldval]',samedata='$add[samedata]',fformsize='$add[fformsize]',ispage='$add[ispage]',adddofun='$add[adddofun]',editdofun='$add[editdofun]',qadddofun='$add[qadddofun]',qeditdofun='$add[qeditdofun]',linkfieldtb='$add[linkfieldtb]',linkfieldshow='$add[linkfieldshow]',editorys='$add[editorys]',issmalltext='$add[issmalltext]',fmvnum='$add[fmvnum]' where fid='$add[fid]'"); TogSaveTxtF(1);//公共变量 if($add[savetxt]==1&&$add[iscj]==1) { $tmpsql=$empire->query("alter table {$dbtbpre}ecms_infotmp_".$tbname." change ".$add[f]." ".$add[f]." mediumtext not null;"); } //更新表单 $record=""; $field=""; $like=$field.$add[oldf].$record; $newlike=$field.$add[f].$record; $slike=",".$add[oldf].","; $newslike=",".$add[f].","; $fsql=$empire->query("select mid,mtemp,cj,enter,tempvar,searchvar,tid,qenter,mustqenterf,qmtemp,listandf,listtempvar,canaddf,caneditf,orderf from {$dbtbpre}enewsmod where tid='$tid'"); while($fr=$empire->fetch($fsql)) { $and=""; $enter=$fr['enter']; if($add[f]<>$add[oldf]) { //采集项 if(strstr($fr[cj],$like)) { $cj=str_replace($like,$newlike,$fr[cj]); $and=",cj='$cj'"; ChangeMCj($fr[mid],$fr[tid],$cj); } //录入项 if(strstr($fr[enter],$like)) { $enter=str_replace($like,$newlike,$fr[enter]); $and.=",enter='$enter'"; } //投稿项 if(strstr($fr[qenter],$like)) { $qenter=str_replace($like,$newlike,$fr[qenter]); $and.=",qenter='$qenter'"; } //内容模板项 if(strstr($fr[tempvar],$like)) { $tempvar=str_replace($like,$newlike,$fr[tempvar]); $and.=",tempvar='$tempvar'"; } //列表模板项 if(strstr($fr[listtempvar],$like)) { $listtempvar=str_replace($like,$newlike,$fr[listtempvar]); $and.=",listtempvar='$listtempvar'"; } //搜索项 if(strstr($fr[searchvar],$slike)) { $searchvar=str_replace($slike,$newslike,$fr[searchvar]); $and.=",searchvar='$searchvar'"; } //必填项 if(strstr($fr[mustqenterf],$slike)) { $mustqenterf=str_replace($slike,$newslike,$fr[mustqenterf]); $and.=",mustqenterf='$mustqenterf'"; } //结合项 if(strstr($fr[listandf],$slike)) { $listandf=str_replace($slike,$newslike,$fr[listandf]); $and.=",listandf='$listandf'"; } //排序项 if(strstr($fr[orderf],$slike)) { $orderf=str_replace($slike,$newslike,$fr[orderf]); $and.=",orderf='$orderf'"; } //可修改 if(strstr($fr[caneditf],$slike)) { $caneditf=str_replace($slike,$newslike,$fr[caneditf]); $and.=",caneditf='$caneditf'"; } //可增加 if(strstr($fr[canaddf],$slike)) { $canaddf=str_replace($slike,$newslike,$fr[canaddf]); $and.=",canaddf='$canaddf'"; } //表单模板 if(strstr($fr[mtemp],'[!--'.$add[oldf].'--]')) { $fr[mtemp]=str_replace('[!--'.$add[oldf].'--]','[!--'.$add[f].'--]',$fr[mtemp]); $and.=",mtemp='".addslashes(stripSlashes($fr[mtemp]))."'"; } //投稿表单模板 if(strstr($fr[qmtemp],'[!--'.$add[oldf].'--]')) { $fr[qmtemp]=str_replace('[!--'.$add[oldf].'--]','[!--'.$add[f].'--]',$fr[qmtemp]); $and.=",qmtemp='".addslashes(stripSlashes($fr[qmtemp]))."'"; } if($and) { $empire->query("update {$dbtbpre}enewsmod set mid='$fr[mid]'".$and." where mid='$fr[mid]'"); } } ChangeMForm($fr[mid],$fr[tid],$fr[mtemp]); ChangeQmForm($fr[mid],$fr[tid],$fr[qmtemp]); } GetConfig(1);//更新缓存 if($sql) { insert_dolog("fid=".$add[fid]."
f=".$add[f]);//操作日志 printerror("EditFSuccess","db/ListF.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else {printerror("DbError","history.go(-1)");} } //修改数据表系统字段 function EditSysF($add,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$add['tid']; $tbname=RepPostVar($add['tbname']); $fid=(int)$add['fid']; $f=RepPostVar($add['f']); if(!$fid||!$tid||!$tbname||!$f||!$add[fname]) { printerror("EmptyF","history.go(-1)"); } CheckLevel($userid,$username,$classid,"f");//验证权限 $add['fname']=hRepPostStr($add['fname'],1); $add['fform']=hRepPostStr($add['fform'],1); $add['fzs']=hRepPostStr($add['fzs'],1); $add['ftype']=hRepPostStr($add['ftype'],1); $add['flen']=hRepPostStr($add['flen'],1); $add['linkfieldval']=hRepPostStr($add['linkfieldval'],1); $add['fformsize']=hRepPostStr($add['fformsize'],1); $add['adddofun']=hRepPostStr($add['adddofun'],0); $add['editdofun']=hRepPostStr($add['editdofun'],0); $add['qadddofun']=hRepPostStr($add['qadddofun'],0); $add['qeditdofun']=hRepPostStr($add['qeditdofun'],0); $add['linkfieldtb']=hRepPostStr($add['linkfieldtb'],1); $add['linkfieldshow']=hRepPostStr($add['linkfieldshow'],1); $add['fmvnum']=hRepPostStr($add['fmvnum'],1); $add[samedata]=(int)$add[samedata]; //字段 $addupdate=''; if($f=='title'||$f=='titlepic') { if(!empty($add['flen'])) { $field=$f." ".$add['ftype']."(".$add['flen'].") NOT NULL default ''"; //信息表 $empire->query("alter table {$dbtbpre}ecms_".$tbname." change ".$f." ".$field); //归档表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc change ".$f." ".$field); //审核表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_check change ".$f." ".$field); //采集临时表 $empire->query("alter table {$dbtbpre}ecms_infotmp_".$tbname." change ".$f." ".$field); } $addupdate=",ftype='$add[ftype]'"; } //索引 $iskey=(int)$add['iskey']; if($f=='title'||$f=='titlepic') { if($iskey==1)//索引 { if($add['oldiskey']==0) { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname." ADD INDEX(".$f.")"); $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc ADD INDEX(".$f.")"); $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check ADD INDEX(".$f.")"); } } elseif($add['oldiskey']==1&&$iskey==0)//删除索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname." DROP INDEX ".$f); $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc DROP INDEX ".$f); $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check DROP INDEX ".$f); } } //处理变量 $add[isonly]=(int)$add[isonly]; $add[myorder]=(int)$add[myorder]; //替换代码 if($add[fform]<>$add[oldfform]||$add[fvalue]<>$add[oldfvalue]||$add[oldlinkfieldtb]<>$add[linkfieldtb]||$add[oldlinkfieldshow]<>$add[linkfieldshow]||$add[linkfieldval]<>$add[oldlinkfieldval]||$add[fformsize]<>$add[oldfformsize]) { $fhtml=GetFform($add[fform],$add[f],$add[fvalue],$add[linkfieldval],$add[fformsize],$add); } else { $fhtml=$add[fhtml]; } if($add[fform]<>$add[oldfform]||$add[fvalue]<>$add[oldfvalue]||$add[oldlinkfieldtb]<>$add[linkfieldtb]||$add[oldlinkfieldshow]<>$add[linkfieldshow]||$add[linkfieldval]<>$add[oldlinkfieldval]||$add[fformsize]<>$add[oldfformsize]) { $qfhtml=GetQFform($add[fform],$add[f],$add[fvalue],$add[fformsize],$add); } else { $qfhtml=$add[qfhtml]; } $sql=$empire->query("update {$dbtbpre}enewsf set fname='$add[fname]',fform='$add[fform]',fhtml='".eaddslashes2($fhtml)."',fzs='".eaddslashes($add[fzs])."',myorder=$add[myorder],flen='$add[flen]',fvalue='".eaddslashes2($add[fvalue])."',iskey=$iskey,qfhtml='".eaddslashes2($qfhtml)."',isonly='$add[isonly]',linkfieldval='$add[linkfieldval]',samedata='$add[samedata]',fformsize='$add[fformsize]',adddofun='$add[adddofun]',editdofun='$add[editdofun]',qadddofun='$add[qadddofun]',qeditdofun='$add[qeditdofun]',linkfieldtb='$add[linkfieldtb]',linkfieldshow='$add[linkfieldshow]'".$addupdate." where fid='$fid'"); TogSaveTxtF(1);//公共变量 //更新表单 $fsql=$empire->query("select mid,mtemp,tid,qmtemp from {$dbtbpre}enewsmod where tid='$tid'"); while($fr=$empire->fetch($fsql)) { ChangeMForm($fr[mid],$fr[tid],$fr[mtemp]); ChangeQmForm($fr[mid],$fr[tid],$fr[qmtemp]); } GetConfig(1);//更新缓存 if($sql) { insert_dolog("fid=".$fid."
f=".$f);//操作日志 printerror("EditFSuccess","db/EditSysF.php?tid=$tid&tbname=$tbname&fid=$fid".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //删除数据库字段 function DelF($fid,$tid,$tbname,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$tid; $tbname=RepPostVar($tbname); $fid=(int)$fid; if(empty($fid)||!$tid||!$tbname) { printerror("EmptyFid","history.go(-1)"); } CheckLevel($userid,$username,$classid,"f");//验证权限 //是否系统内部字段 $cr=$empire->fetch1("select isadd,f,tbdataf,iscj from {$dbtbpre}enewsf where fid='$fid'"); if(empty($cr[isadd])) { printerror("NotIsAdd","history.go(-1)"); } //删除表字段 if($cr['tbdataf']==1) { $tbr=$empire->fetch1("select datatbs from {$dbtbpre}enewstable where tid='$tid'"); if($tbr['datatbs']) { $dtbr=explode(',',$tbr['datatbs']); $count=count($dtbr); for($i=1;$i<$count-1;$i++) { $empire->query("alter table {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." drop COLUMN ".$cr[f]); } } //归档副表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc_data drop COLUMN ".$cr[f]); //审核副表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_check_data drop COLUMN ".$cr[f]); } else { $usql=$empire->query("alter table {$dbtbpre}ecms_".$tbname." drop COLUMN ".$cr[f]); $usql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc drop COLUMN ".$cr[f]); $usql=$empire->query("alter table {$dbtbpre}ecms_".$tbname."_check drop COLUMN ".$cr[f]); } //采集表字段 if($cr[iscj]==1) { $usql=$empire->query("alter table {$dbtbpre}ecms_infotmp_".$tbname." drop COLUMN ".$cr[f]); $usql=$empire->query("alter table {$dbtbpre}ecms_infoclass_".$tbname." drop COLUMN zz_".$cr[f].",drop COLUMN z_".$cr[f].",drop COLUMN qz_".$cr[f].",drop COLUMN save_".$cr[f]); } $sql=$empire->query("delete from {$dbtbpre}enewsf where fid='$fid'"); TogSaveTxtF(1);//公共变量 //删除模型中字段项 $record=""; $field=""; $like=$field.$cr[f].$record; $slike=",".$cr[f].","; $dsql=$empire->query("select mid,cj,enter,tempvar,searchvar,tid,qenter,mustqenterf,listandf,listtempvar,canaddf,caneditf,orderf from {$dbtbpre}enewsmod where tid='$tid' and (cj like '%".$like."%' or enter like '%".$like."%' or searchvar like '%".$slike."%' or tempvar like '%".$like."%' or listtempvar like '%".$like."%' or qenter like '%".$like."%' or mustqenterf like '%".$slike."%' or listandf like '%".$slike."%' or canaddf like '%".$slike."%' or caneditf like '%".$slike."%' or orderf like '%".$slike."%')"); while($r=$empire->fetch($dsql)) { $cj=""; $enter=""; $tempvar=""; $listtempvar=""; $searchvar=""; $qenter=""; $mustqenterf=""; $listandf=""; $orderf=""; $canaddf=""; $caneditf=""; $re=""; $re1=""; $and=""; $dh=""; //采集 if(strstr($r[cj],$like)) { $re=explode($record,$r[cj]); for($i=0;$iquery("update {$dbtbpre}enewsmod set ".$and." where mid='$r[mid]'"); } } GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("fid=".$fid."
f=".$cr[f]); printerror("DelFSuccess","db/ListF.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else {printerror("DbError","history.go(-1)");} } //修改字段顺序 function EditFOrder($fid,$myorder,$tid,$tbname,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$tid; $tbname=RepPostVar($tbname); //验证权限 CheckLevel($userid,$username,$classid,"f"); for($i=0;$iquery("update {$dbtbpre}enewsf set myorder='$newmyorder' where fid='$fid[$i]'"); } printerror("EditFOrderSuccess","db/ListF.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } //转移字段 function ChangeDataTableF($add,$userid,$username){ global $empire,$dbtbpre,$public_r,$fun_r; //验证权限 CheckLevel($userid,$username,$classid,"f"); $fid=(int)$add[fid]; $tid=(int)$add[tid]; $tbname=RepPostVar($add[tbname]); $line=(int)$add[line]; $start=(int)$add[start]; if(!$fid||!$tid||!$tbname) { printerror("ErrorUrl","history.go(-1)"); } if(empty($line)) { $line=200; } $fr=$empire->fetch1("select * from {$dbtbpre}enewsf where fid='$fid'"); if(!$fr[fid]) { printerror("ErrorUrl","history.go(-1)"); } if(empty($fr[isadd])) { printerror("NotIsAdd","history.go(-1)"); } $tid=$fr[tid]; $tbname=$fr[tbname]; $f=$fr[f]; //建字段 if(empty($start)) { $field=ReturnTbFtype($fr);//返回字段 if($fr[tbdataf])//转移到主表 { $empire->query("alter table {$dbtbpre}ecms_".$tbname." add ".$field); if($fr[iskey]==1)//索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname." ADD INDEX(".$fr[f].")"); } //归档主表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc add ".$field); if($fr[iskey]==1)//索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc ADD INDEX(".$fr[f].")"); } //审核主表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_check add ".$field); if($fr[iskey]==1)//索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check ADD INDEX(".$fr[f].")"); } } else//转移到副表 { $tbr=$empire->fetch1("select datatbs from {$dbtbpre}enewstable where tid='$tid'"); if($tbr['datatbs']) { $dtbr=explode(',',$tbr['datatbs']); $count=count($dtbr); for($i=1;$i<$count-1;$i++) { $empire->query("alter table {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." add ".$field); if($fr[iskey]==1)//索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." ADD INDEX(".$fr[f].")"); } } } //归档副表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc_data add ".$field); if($fr[iskey]==1)//索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_doc_data ADD INDEX(".$fr[f].")"); } //审核副表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_check_data add ".$field); if($fr[iskey]==1)//索引 { $empire->query("ALTER TABLE {$dbtbpre}ecms_".$tbname."_check_data ADD INDEX(".$fr[f].")"); } } } $selectf=''; if(empty($fr[tbdataf])) { $selectf=','.$fr[f]; } $b=0; $sql=$empire->query("select id,checked from {$dbtbpre}ecms_".$tbname."_index where id>$start order by id limit ".$line); while($r=$empire->fetch($sql)) { $b=1; $newstart=$r['id']; //表名 $infotb=ReturnInfoMainTbname($tbname,$r['checked']); $infor=$empire->fetch1("select stb".$selectf." from ".$infotb." where id='$r[id]'"); $infodatatb=ReturnInfoDataTbname($tbname,$r['checked'],$infor['stb']); if($fr[tbdataf])//副表 { $finfor=$empire->fetch1("select ".$f." from ".$infodatatb." where id='$r[id]'"); $value=$finfor[$f]; $empire->query("update ".$infotb." set ".$f."='".StripAddsData($value)."' where id='$r[id]'"); } else//主表 { $value=$infor[$f]; $empire->query("update ".$infodatatb." set ".$f."='".StripAddsData($value)."' where id='$r[id]'"); } } if(empty($b)) { echo"".$fun_r[AllChangeDataTableFSuccess]; exit(); } echo"".$fun_r[OneChangeDataTableFSuccess]."(ID:".$newstart.")"; exit(); } //转移字段(归档) function ChangeDocDataTableF($add,$userid,$username){ global $empire,$dbtbpre,$public_r,$fun_r; //验证权限 CheckLevel($userid,$username,$classid,"f"); $fid=(int)$add[fid]; $tid=(int)$add[tid]; $tbname=RepPostVar($add[tbname]); $line=(int)$add[line]; $start=(int)$add[start]; if(!$fid||!$tid||!$tbname) { printerror("ErrorUrl","history.go(-1)"); } if(empty($line)) { $line=200; } $fr=$empire->fetch1("select * from {$dbtbpre}enewsf where fid='$fid'"); if(!$fr[fid]) { printerror("ErrorUrl","history.go(-1)"); } if(empty($fr[isadd])) { printerror("NotIsAdd","history.go(-1)"); } $tid=$fr[tid]; $tbname=$fr[tbname]; $f=$fr[f]; $selectf=''; if(empty($fr[tbdataf])) { $selectf=','.$fr[f]; } $b=0; $sql=$empire->query("select id,stb".$selectf." from {$dbtbpre}ecms_".$tbname."_doc where id>$start order by id limit ".$line); while($r=$empire->fetch($sql)) { $b=1; $newstart=$r['id']; if($fr[tbdataf])//副表 { $finfor=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname."_doc_data where id='$r[id]'"); $value=$finfor[$f]; $empire->query("update {$dbtbpre}ecms_".$tbname."_doc set ".$f."='".StripAddsData($value)."' where id='$r[id]'"); } else//主表 { $value=$r[$f]; $empire->query("update {$dbtbpre}ecms_".$tbname."_doc_data set ".$f."='".StripAddsData($value)."' where id='$r[id]'"); } } if(empty($b)) { //删除字段 if($fr[tbdataf])//转移到主表 { $tbr=$empire->fetch1("select datatbs from {$dbtbpre}enewstable where tid='$tid'"); if($tbr['datatbs']) { $dtbr=explode(',',$tbr['datatbs']); $count=count($dtbr); for($i=1;$i<$count-1;$i++) { $empire->query("alter table {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." drop COLUMN ".$fr[f]); } } //归档副表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc_data drop COLUMN ".$fr[f]); //审核副表 $empire->query("alter table {$dbtbpre}ecms_".$tbname."_check_data drop COLUMN ".$fr[f]); } else//转移到副表 { $empire->query("alter table {$dbtbpre}ecms_".$tbname." drop COLUMN ".$fr[f]); $empire->query("alter table {$dbtbpre}ecms_".$tbname."_doc drop COLUMN ".$fr[f]); $empire->query("alter table {$dbtbpre}ecms_".$tbname."_check drop COLUMN ".$fr[f]); } $newtbdataf=$fr[tbdataf]?0:1; $empire->query("update {$dbtbpre}enewsf set tbdataf='$newtbdataf' where fid='$fid'"); //删除模型中字段项 if(empty($tbr['datatbs'])) { $record=""; $field=""; $like=$field.$fr[f].$record; $slike=",".$fr[f].","; $dsql=$empire->query("select mid,searchvar,listandf,listtempvar,orderf from {$dbtbpre}enewsmod where tid='$tid' and (searchvar like '%".$slike."%' or listtempvar like '%".$like."%' or listandf like '%".$slike."%' or orderf like '%".$slike."%')"); while($r=$empire->fetch($dsql)) { $listtempvar=""; $searchvar=""; $listandf=""; $orderf=""; $re=""; $re1=""; $and=""; $dh=""; //列表模板变量 if(strstr($r[listtempvar],$like)) { $re1=explode($record,$r[listtempvar]); for($i=0;$iquery("update {$dbtbpre}enewsmod set ".$and." where mid='$r[mid]'"); } } } GetConfig(1);//更新缓存 insert_dolog("tid=$tid&tbname=$tbname
fid=$fid&field=$f&tbdataf=".$newtbdataf);//操作日志 printerror("ChangeDataTableFSuccess","db/ListF.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } echo"".$fun_r[OneChangeDocDataTableFSuccess]."(ID:".$newstart.")"; exit(); } //************************** 模型 ************************** //更新默认系统模型 function UpdateTbDefMod($tid,$tbname,$mid){ global $empire,$dbtbpre; $num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsmod where tid='$tid'"); if($num==1) { $empire->query("update {$dbtbpre}enewstable set mid='$mid' where tid='$tid'"); $empire->query("update {$dbtbpre}enewsmod set isdefault=1 where mid='$mid'"); } } //更新模型表单 function ChangeMForm($mid,$tid,$mtemp){ global $empire,$dbtbpre; $file=eReturnTrueEcmsPath()."e/data/html/".$mid.".php"; $sql=$empire->query("select f,fhtml from {$dbtbpre}enewsf where tid='$tid'"); while($r=$empire->fetch($sql)) { $mtemp=str_replace("[!--".$r[f]."--]",$r[fhtml],$mtemp); } $mtemp=AddCheckViewTempCode().$mtemp; WriteFiletext($file,$mtemp); } //更新投稿表单 function ChangeQmForm($mid,$tid,$mtemp){ global $empire,$dbtbpre; $file=eReturnTrueEcmsPath()."e/data/html/q".$mid.".php"; $sql=$empire->query("select f,qfhtml from {$dbtbpre}enewsf where tid='$tid'"); while($r=$empire->fetch($sql)) { $mtemp=str_replace("[!--".$r[f]."--]",$r[qfhtml],$mtemp); } $mtemp=AddCheckViewTempCode().$mtemp; WriteFiletext($file,$mtemp); } //更新采集 function ChangeMCj($mid,$tid,$cj){ global $empire,$dbtbpre; $record=""; $field=""; //读取修改采集表单 $data="[!--enews.name--][!--enews.var--]"; $file1=eReturnTrueEcmsPath()."e/data/html/editcj".$mid.".php"; $file=eReturnTrueEcmsPath()."e/data/html/cj".$mid.".php"; $r=explode($record,$cj); for($i=0;$ifetch1("select cjhtml,fhtml from {$dbtbpre}enewsf where f='$r1[1]' and tid='$tid' limit 1"); $cjtemp=str_replace("[!--enews.name--]",$r1[0],$fr[cjhtml]); $str.=$cjtemp; $editcjtemp=str_replace("[!--enews.name--]",$r1[0],$data); $editcjtemp=str_replace("[!--enews.var--]",$fr[fhtml],$editcjtemp); $editcj.=$editcjtemp; } WriteFiletext($file,AddCheckViewTempCode().$str); WriteFiletext($file1,AddCheckViewTempCode().$editcj); } //组合采集项 function TogMCj($cname,$cchange){ $record=""; $field=""; $c=""; for($i=0;$i".$data.""; } //返回自动生成投稿表单模板 function ReturnQmtemp($cname,$cqenter){ $temp="enews.name[!--enews.var--]"; $ntemp="
enews.name
[!--enews.var--]
"; for($i=0;$i".$data."
"; } //返回br项 function ReturnMTobrF($enter,$tid,$dof="tobr"){ global $empire,$dbtbpre; $record=""; $field=""; $f=","; $sql=$empire->query("select f from {$dbtbpre}enewsf where ".$dof."=0 and tid='$tid'"); while($r=$empire->fetch($sql)) { if(strstr($enter,$field.$r[f].$record)) { $f.=$r[f].","; } } return $f; } //增加模型 function AddM($add,$cname,$cchange,$schange,$center,$cqenter,$menter,$listand,$ltempf,$ptempf,$canadd,$canedit,$listorder,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$add['tid']; $tbname=RepPostVar($add['tbname']); if(empty($add[mname])||!$tid||!$tbname) { printerror("EmptyM","history.go(-1)"); } $listfile=eReturnCPath(str_replace('.','',$add[listfile]),''); CheckLevel($userid,$username,$classid,"m");//验证权限 //组合采集项 $cj=TogMCj($cname,$cchange); //组合搜索项 $searchvar=TogMSearch($cname,$schange); //组合必填项 $mustqenterf=TogMustf($cname,$menter); //组合结合项 $listandf=TogMustf($cname,$listand); //组合排序项 $orderf=TogMustf($cname,$listorder); //组合投稿项 $qenter=TogMqenter($cname,$cqenter); //组合可增加项 $canaddf=TogMustf($cname,$canadd); //组合可修改项 $caneditf=TogMustf($cname,$canedit); //组合录入项 $er=TogMEnter($cname,$center,$ltempf,$ptempf,$tid); $enter=$er[0]; //录入项 $listtempvar=$er[1]; //列表模板项 $tempvar=$er[2]; //内容模板项 //自动生成表单 if($add[mtype]) { $add[mtemp]=ReturnMtemp($cname,$center); } if($add[qmtype]) { $add[qmtemp]=ReturnQmtemp($cname,$cqenter); } $setandf=(int)$add['setandf']; $add[definfovoteid]=(int)$add[definfovoteid]; $showmod=(int)$add['showmod']; $usemod=(int)$add['usemod']; $myorder=(int)$add['myorder']; $add[printtempid]=(int)$add[printtempid]; $add['mname']=hRepPostStr($add['mname'],1); $add['mzs']=hRepPostStr($add['mzs'],1); $cj=AddAddsData($cj); $enter=AddAddsData($enter); $tempvar=AddAddsData($tempvar); $searchvar=AddAddsData($searchvar); $qenter=AddAddsData($qenter); $mustqenterf=AddAddsData($mustqenterf); $listtempvar=AddAddsData($listtempvar); $add['qmname']=hRepPostStr($add['qmname'],0); $canaddf=AddAddsData($canaddf); $caneditf=AddAddsData($caneditf); $orderf=AddAddsData($orderf); $listfile=AddAddsData($listfile); $add['maddfun']=hRepPostStr($add['maddfun'],0); $add['meditfun']=hRepPostStr($add['meditfun'],0); $add['qmaddfun']=hRepPostStr($add['qmaddfun'],0); $add['qmeditfun']=hRepPostStr($add['qmeditfun'],0); $sql=$empire->query("insert into {$dbtbpre}enewsmod(mname,mtemp,mzs,cj,enter,tempvar,sonclass,searchvar,tid,tbname,qenter,mustqenterf,qmtemp,listandf,setandf,listtempvar,qmname,canaddf,caneditf,definfovoteid,showmod,usemod,myorder,orderf,isdefault,listfile,printtempid,maddfun,meditfun,qmaddfun,qmeditfun) values('$add[mname]','".eaddslashes2($add[mtemp])."','$add[mzs]','$cj','$enter','$tempvar','','$searchvar',$tid,'$tbname','$qenter','$mustqenterf','".eaddslashes2($add[qmtemp])."','".addslashes($listandf)."','$setandf','$listtempvar','$add[qmname]','$canaddf','$caneditf',$add[definfovoteid],'$showmod','$usemod','$myorder','$orderf',0,'$listfile','$add[printtempid]','$add[maddfun]','$add[meditfun]','$add[qmaddfun]','$add[qmeditfun]');"); $mid=$empire->lastid(); UpdateTbDefMod($tid,$tbname,$mid); //更新表单 ChangeMForm($mid,$tid,$add[mtemp]); ChangeQmForm($mid,$tid,$add[qmtemp]); //采集文件 ChangeMCj($mid,$tid,$cj); GetConfig(1);//更新缓存 if($sql) { insert_dolog("mid=".$mid."
m=".$add[mname]);//操作日志 printerror("AddMSuccess","db/ListM.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //修改模型 function EditM($add,$cname,$cchange,$schange,$center,$cqenter,$menter,$listand,$ltempf,$ptempf,$canadd,$canedit,$listorder,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$add['tid']; $tbname=RepPostVar($add['tbname']); $add[mid]=(int)$add[mid]; if(empty($add[mname])||empty($add[mid])||!$tid||!$tbname) { printerror("EmptyM","history.go(-1)"); } $listfile=eReturnCPath(str_replace('.','',$add[listfile]),''); //验证权限 CheckLevel($userid,$username,$classid,"m"); //组合采集项 $cj=TogMCj($cname,$cchange); //组合搜索项 $searchvar=TogMSearch($cname,$schange); //组合必填项 $mustqenterf=TogMustf($cname,$menter); //组合结合项 $listandf=TogMustf($cname,$listand); //组合排序项 $orderf=TogMustf($cname,$listorder); //组合投稿项 $qenter=TogMqenter($cname,$cqenter); //组合可增加项 $canaddf=TogMustf($cname,$canadd); //组合可修改项 $caneditf=TogMustf($cname,$canedit); //组合录入项 $er=TogMEnter($cname,$center,$ltempf,$ptempf,$tid); $enter=$er[0]; //录入项 $listtempvar=$er[1]; //列表模板项 $tempvar=$er[2]; //内容模板项 //自动生成表单 if($add[mtype]) { $add[mtemp]=ReturnMtemp($cname,$center); } if($add[qmtype]) { $add[qmtemp]=ReturnQmtemp($cname,$cqenter); } $setandf=(int)$add['setandf']; $add[definfovoteid]=(int)$add[definfovoteid]; $showmod=(int)$add['showmod']; $usemod=(int)$add['usemod']; $myorder=(int)$add['myorder']; $add[printtempid]=(int)$add[printtempid]; $add['mname']=hRepPostStr($add['mname'],1); $add['mzs']=hRepPostStr($add['mzs'],1); $cj=AddAddsData($cj); $enter=AddAddsData($enter); $tempvar=AddAddsData($tempvar); $searchvar=AddAddsData($searchvar); $qenter=AddAddsData($qenter); $mustqenterf=AddAddsData($mustqenterf); $listtempvar=AddAddsData($listtempvar); $add['qmname']=hRepPostStr($add['qmname'],0); $canaddf=AddAddsData($canaddf); $caneditf=AddAddsData($caneditf); $orderf=AddAddsData($orderf); $listfile=AddAddsData($listfile); $add['maddfun']=hRepPostStr($add['maddfun'],0); $add['meditfun']=hRepPostStr($add['meditfun'],0); $add['qmaddfun']=hRepPostStr($add['qmaddfun'],0); $add['qmeditfun']=hRepPostStr($add['qmeditfun'],0); $sql=$empire->query("update {$dbtbpre}enewsmod set mname='$add[mname]',mtemp='".eaddslashes2($add[mtemp])."',mzs='$add[mzs]',cj='$cj',enter='$enter',tempvar='$tempvar',searchvar='$searchvar',qenter='$qenter',mustqenterf='$mustqenterf',qmtemp='".eaddslashes2($add[qmtemp])."',listandf='".addslashes($listandf)."',setandf=$setandf,listtempvar='$listtempvar',qmname='$add[qmname]',canaddf='$canaddf',caneditf='$caneditf',definfovoteid=$add[definfovoteid],showmod='$showmod',usemod='$usemod',myorder='$myorder',orderf='$orderf',listfile='$listfile',printtempid='$add[printtempid]',maddfun='$add[maddfun]',meditfun='$add[meditfun]',qmaddfun='$add[qmaddfun]',qmeditfun='$add[qmeditfun]' where mid='$add[mid]'"); //更新表单 ChangeMForm($add[mid],$tid,$add[mtemp]); ChangeQmForm($add[mid],$tid,$add[qmtemp]); //采集文件 ChangeMCj($add[mid],$tid,$cj); GetConfig(1);//更新缓存 if($sql) { //操作日志 insert_dolog("mid=".$add[mid]."
m=".$add[mname]); printerror("EditMSuccess","db/ListM.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //删除模型 function DelM($mid,$tid,$tbname,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$tid; $tbname=RepPostVar($tbname); $mid=(int)$mid; if(empty($mid)||!$tid||!$tbname) { printerror("EmptyMid","history.go(-1)"); } //验证权限 CheckLevel($userid,$username,$classid,"m"); $r=$empire->fetch1("select mname,isdefault from {$dbtbpre}enewsmod where mid='$mid'"); $sql=$empire->query("delete from {$dbtbpre}enewsmod where mid='$mid'"); $empire->query("delete from {$dbtbpre}enewsinfotype where mid='$mid'");//删除主题分类 DelFiletext("../data/html/".$mid.".php"); DelFiletext("../data/html/q".$mid.".php"); DelFiletext("../data/html/cj".$mid.".php"); DelFiletext("../data/html/editcj".$mid.".php"); //表默认模型 if($r[isdefault]) { $modr=$empire->fetch1("select mid from {$dbtbpre}enewsmod where tid='$tid' order by mid"); if($modr[mid]) { $empire->query("update {$dbtbpre}enewstable set mid='$modr[mid]' where tid='$tid'"); $empire->query("update {$dbtbpre}enewsmod set isdefault=1 where mid='$modr[mid]'"); } } GetConfig(1);//更新缓存 if($sql) { insert_dolog("mid=".$mid."
m=".$r[mname]);//操作日志 printerror("DelMSuccess","db/ListM.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //默认模型 function DefM($mid,$tid,$tbname,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$tid; $tbname=RepPostVar($tbname); $mid=(int)$mid; if(empty($mid)||!$tid||!$tbname) { printerror("EmptyDefMid","history.go(-1)"); } //验证权限 CheckLevel($userid,$username,$classid,"m"); $r=$empire->fetch1("select mname from {$dbtbpre}enewsmod where mid='$mid'"); $empire->query("update {$dbtbpre}enewsmod set isdefault=0 where tid='$tid'"); $sql=$empire->query("update {$dbtbpre}enewsmod set isdefault=1 where mid='$mid'"); $empire->query("update {$dbtbpre}enewstable set mid='$mid' where tid='$tid'"); GetConfig(1);//更新缓存 if($sql) { insert_dolog("mid=".$mid."
m=".$r[mname]);//操作日志 printerror("DefMSuccess","db/ListM.php?tid=$tid&tbname=$tbname".hReturnEcmsHashStrHref2(0)); } else { printerror("DbError","history.go(-1)"); } } //更新模型表单文件 function ChangeAllModForm($add,$userid,$username){ global $empire,$dbtbpre; //验证权限 CheckLevel($userid,$username,$classid,"changedata"); $sql=$empire->query("select mid,tid,mtemp,qmtemp,cj from {$dbtbpre}enewsmod"); while($r=$empire->fetch($sql)) { ChangeMForm($r[mid],$r[tid],$r[mtemp]);//更新表单 ChangeQmForm($r[mid],$r[tid],$r[qmtemp]);//更新前台表单 ChangeMCj($r[mid],$r[tid],$r[cj]);//采集表单 //更新栏目导航 if($add['ChangeClass']==1) { GetSearch($r[mid]); } } //操作日志 insert_dolog("ChangeClass=$add[ChangeClass]"); printerror("ChangeAllModFormSuccess","history.go(-1)"); } //导入系统模型 function LoadInMod($add,$file,$file_name,$file_type,$file_size,$userid,$username){ global $empire,$dbtbpre,$ecms_config; //验证权限 CheckLevel($userid,$username,$classid,"table"); $tbname=RepPostVar(trim($add['tbname'])); if(!$file_name||!$file_size||!$tbname) { printerror("EmptyLoadInMod",""); } //扩展名 $filetype=GetFiletype($file_name); if($filetype!=".mod") { printerror("LoadInModMustmod",""); } //表名是否已存在 $num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewstable where tbname='$tbname' limit 1"); if($num) { printerror("HaveLoadInTb",""); } //上传文件 $path=ECMS_PATH."e/data/tmp/mod/uploadm".time().make_password(10).".php"; $cp=@move_uploaded_file($file,$path); if(!$cp) { printerror("EmptyLoadInMod",""); } DoChmodFile($path); @include($path); UpdateTbDefMod($tid,$tbname,$mid); //公共变量 TogSaveTxtF(1); GetConfig(1);//更新缓存 //生成模型表单文件 $modr=$empire->fetch1("select mtemp,qmtemp,cj from {$dbtbpre}enewsmod where mid='$mid'"); ChangeMForm($mid,$tid,$modr[mtemp]);//更新表单 ChangeQmForm($mid,$tid,$modr[qmtemp]);//更新前台表单 ChangeMCj($mid,$tid,$modr[cj]);//采集表单 //删除文件 DelFiletext($path); //操作日志 insert_dolog("tid=$tid&tb=$tbname
mid=$mid"); printerror("LoadInModSuccess","db/ListTable.php".hReturnEcmsHashStrHref2(1)); } //导出系统模型 function LoadOutMod($add,$userid,$username){ global $empire,$dbtbpre; $tid=(int)$add['tid']; $tbname=RepPostVar($add['tbname']); $mid=(int)$add['mid']; if(!$tid||!$tbname||!$mid) { printerror("EmptyLoadMod",""); } $mr=$empire->fetch1("select * from {$dbtbpre}enewsmod where mid=$mid and tid=$tid"); if(!$mr['mid']) { printerror("EmptyLoadMod",""); } $tr=$empire->fetch1("select tbname,tname,tsay,intb from {$dbtbpre}enewstable where tid=$tid"); if(!$tr['tbname']) { printerror("EmptyLoadMod",""); } //数据表结构 $loadmod="query(\"insert into \".\$dbtbpre.\"enewstable(tbname,tname,tsay,isdefault,datatbs,deftb,yhid,mid,intb) values('\$tbname','".$tr[tname]."','".LMEscape_str($tr[tsay])."',0,',1,','1',0,0,'".$tr[intb]."');\"); \$tid=\$empire->lastid(); "; //字段 $fsql=$empire->query("select * from {$dbtbpre}enewsf where tid=$tid order by fid"); while($fr=$empire->fetch($fsql)) { $loadmod.="\$empire->query(\"insert into \".\$dbtbpre.\"enewsf(f,fname,fform,fhtml,fzs,isadd,isshow,iscj,cjhtml,myorder,ftype,flen,dotemp,tid,tbname,savetxt,fvalue,iskey,tobr,dohtml,qfhtml,isonly,linkfieldval,samedata,fformsize,tbdataf,ispage,adddofun,editdofun,qadddofun,qeditdofun,linkfieldtb,linkfieldshow,editorys,issmalltext,fmvnum) values('$fr[f]','$fr[fname]','$fr[fform]','".LMEscape_str($fr['fhtml'])."','".LMEscape_str($fr[fzs])."',$fr[isadd],$fr[isshow],$fr[iscj],'".LMEscape_str($fr[cjhtml])."',$fr[myorder],'$fr[ftype]','$fr[flen]',$fr[dotemp],\$tid,'\$tbname',$fr[savetxt],'".LMEscape_str($fr[fvalue])."',$fr[iskey],$fr[tobr],$fr[dohtml],'".LMEscape_str($fr[qfhtml])."',$fr[isonly],'".LMEscape_str($fr[linkfieldval])."',$fr[samedata],'$fr[fformsize]','$fr[tbdataf]','$fr[ispage]','".LMEscape_str($fr[adddofun])."','".LMEscape_str($fr[editdofun])."','".LMEscape_str($fr[qadddofun])."','".LMEscape_str($fr[qeditdofun])."','".LMEscape_str($fr[linkfieldtb])."','".LMEscape_str($fr[linkfieldshow])."','$fr[editorys]','$fr[issmalltext]','".LMEscape_str($fr[fmvnum])."');\"); "; } //模型 $loadmod.="\$empire->query(\"insert into \".\$dbtbpre.\"enewsmod(mname,mtemp,mzs,cj,enter,tempvar,sonclass,searchvar,tid,tbname,qenter,mustqenterf,qmtemp,listandf,setandf,listtempvar,qmname,canaddf,caneditf,definfovoteid,showmod,usemod,myorder,orderf,isdefault,listfile,printtempid,maddfun,meditfun,qmaddfun,qmeditfun) values('$mr[mname]','".LMEscape_str($mr[mtemp])."','".LMEscape_str($mr[mzs])."','".LMEscape_str($mr[cj])."','".LMEscape_str($mr[enter])."','".LMEscape_str($mr[tempvar])."','','".LMEscape_str($mr[searchvar])."',\$tid,'\$tbname','".LMEscape_str($mr[qenter])."','".LMEscape_str($mr[mustqenterf])."','".LMEscape_str($mr[qmtemp])."','".LMEscape_str($mr[listandf])."',$mr[setandf],'".LMEscape_str($mr[listtempvar])."','".LMEscape_str($mr[qmname])."','".LMEscape_str($mr[canaddf])."','".LMEscape_str($mr[caneditf])."',0,0,0,0,'".LMEscape_str($mr[orderf])."',0,'',0,'".LMEscape_str($mr[maddfun])."','".LMEscape_str($mr[meditfun])."','".LMEscape_str($mr[qmaddfun])."','".LMEscape_str($mr[qmeditfun])."');\"); \$mid=\$empire->lastid(); ?>"; $file=$tr['tbname'].time().".mod"; $filepath=ECMS_PATH."e/data/tmp/mod/".$file; WriteFiletext_n($filepath,AddCheckViewTempCode().$loadmod); DownLoadFile($file,$filepath,1); //操作日志 insert_dolog("tid=$tid&tb=$tr[tbname]
mid=$mid&m=$mr[mname]"); exit(); } //返回数据表结构 function LoadModReturnstru($table,$tb,$ecms=0){ global $empire; $usql=$empire->query("SET SQL_QUOTE_SHOW_CREATE=1;");//设置引号 $r=$empire->fetch1("SHOW CREATE TABLE `$table`;");//数据表结构 $create=str_replace("\"","\\\"",$r[1]); $create=LoadModToMysqlFour($create); //替换表 if($ecms==1) { $reptb="\$dbtbpre.\"ecms_\".\$tbname.\"_doc\""; } elseif($ecms==2) { $reptb="\$dbtbpre.\"ecms_infoclass_\".\$tbname"; } elseif($ecms==3) { $reptb="\$dbtbpre.\"ecms_infotmp_\".\$tbname"; } elseif($ecms==4) { $reptb="\$dbtbpre.\"ecms_\".\$tbname.\"_doc_data\""; } elseif($ecms==5) { $reptb="\$dbtbpre.\"ecms_\".\$tbname.\"_data_1\""; } elseif($ecms==6) { $reptb="\$dbtbpre.\"ecms_\".\$tbname.\"_index\""; } elseif($ecms==7) { $reptb="\$dbtbpre.\"ecms_\".\$tbname.\"_doc_index\""; } elseif($ecms==8) { $reptb="\$dbtbpre.\"ecms_\".\$tbname.\"_check\""; } elseif($ecms==9) { $reptb="\$dbtbpre.\"ecms_\".\$tbname.\"_check_data\""; } else { $reptb="\$dbtbpre.\"ecms_\".\$tbname"; } $dumpsql.="\$empire->query(str_replace(\"".$table."\",$reptb,SetCreateTable(\"".$create."\",\$ecms_config['db']['dbchar'])));\r\n"; return $dumpsql; } //转为Mysql4.0格式 function LoadModToMysqlFour($query){ $exp="ENGINE="; if(!strstr($query,$exp)) { return $query; } $exp1=" "; $r=explode($exp,$query); //取得表类型 $r1=explode($exp1,$r[1]); $returnquery=$r[0]."TYPE=".$r1[0]; return $returnquery; } //字符过虑 function LMEscape_str($str){ global $empire,$dbtbpre,$public_r; if($public_r['bakescapetype']==2)//real_escape_string { $str=$empire->EDbEscapeStr($str); } else//addslashes { $str=addslashes($str); } $str=str_replace('\\\'','\'\'',$str); $str=str_replace("\\\\","\\\\\\\\",$str); $str=str_replace('$','\$',$str); return $str; } ?>