/e/class/moddofun.php
PHP | 2271 lines | 2008 code | 50 blank | 213 comment | 246 complexity | c240a5afacc357851f0d41e3947c6c44 MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- <?php
- //************************************ 数据表 ************************************
-
- //建立初始表
- function AddTableDefault($tbname,$tid){
- global $empire,$dbtbpre,$phome_db_dbchar;
- include("db/DefaultTable.php");
- //复制存档表
- $otb=$dbtbpre."ecms_".$tbname;
- $tb=$otb."_doc";
- CopyEcmsTb($otb,$tb);
- $odtb=$dbtbpre."ecms_".$tbname."_data_1";
- $dtb=$tb."_data";
- CopyEcmsTb($odtb,$dtb);
- }
-
- //复制数据表
- function CopyNewTable($add,$userid,$username){
- global $empire,$dbtbpre;
- $tid=(int)$add['tid'];
- $newtbname=strtolower(trim($add[newtbname]));
- if(!$tid||empty($newtbname)||!$add[tname])
- {
- printerror("EmptyTbname","");
- }
- CheckLevel($userid,$username,$classid,"table");//操作权限
- $add[yhid]=(int)$add[yhid];
- $tr=$empire->fetch1("select tbname 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) values('$newtbname','$add[tname]','$add[tsay]',0,',1,','1','$add[yhid]');");
- $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']."_doc",$dbtbpre."ecms_".$newtbname."_doc"); //归档表
- CopyEcmsTb($dbtbpre."ecms_".$tr['tbname']."_doc_data",$dbtbpre."ecms_".$newtbname."_doc_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) 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]');");
- }
- TogSaveTxtF(1);//公共变量
- GetConfig(1);//更新缓存
- if($sql)
- {
- //操作日志
- insert_dolog("tid=".$tid."<br>tb=".$tr[tbname]."<br>newtid=".$newtid."<br>newtb=".$newtbname);
- printerror("CopyTbSuccess","db/ListTable.php");
- }
- else
- {
- printerror("DbError","");
- }
- }
-
- //建立数据表
- function AddTable($add,$userid,$username){
- global $empire,$dbtbpre;
- $add[tbname]=strtolower(trim($add[tbname]));
- if(!$add[tbname]||!$add[tname])
- {
- printerror("EmptyTbname","history.go(-1)");
- }
- //操作权限
- CheckLevel($userid,$username,$classid,"table");
- $add[yhid]=(int)$add[yhid];
- $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) values('$add[tbname]','$add[tname]','$add[tsay]',0,',1,','1','$add[yhid]');");
- $tid=$empire->lastid();
- //初使化表
- AddTableDefault($add[tbname],$tid);
- GetConfig(1);//更新缓存
- if($sql)
- {
- //操作日志
- insert_dolog("tid=".$tid."<br>tbname=".$add[tbname]);
- printerror("AddTbSuccess","db/AddTable.php?enews=AddTable");
- }
- else
- {
- printerror("DbError","history.go(-1)");
- }
- }
-
- //修改数据表
- function EditTable($add,$userid,$username){
- global $empire,$dbtbpre;
- $add[tbname]=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];
- //改变数据表名
- if($add[tbname]!=$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]."`;");
- //副表
- 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_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}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]' where tid='$tid'");
- GetConfig(1);//更新缓存
- if($sql)
- {
- //操作日志
- insert_dolog("tid=".$tid."<br>tbname=".$add[tbname]);
- printerror("EditTbSuccess","db/ListTable.php");
- }
- 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].";");
- 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("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."<br>tbname=".$r[tbname]);
- printerror("DelTbSuccess","db/ListTable.php");
- }
- 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."<br>tbname=".$r[tbname]);
- printerror("DefaultTableSuccess","db/ListTable.php");
- }
- 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."<br>tbname=".$tbname."&datatb=$datatb");
- printerror("AddDataTableSuccess","db/ListDataTable.php?tid=$tid&tbname=$tbname");
- }
- 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."<br>tbname=".$tbname."&datatb=$datatb");
- printerror("DefDataTableSuccess","db/ListDataTable.php?tid=$tid&tbname=$tbname");
- }
- 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}enewswfinfo where id='$infor[id]' and classid='$infor[classid]'");
- $empire->query("delete from {$dbtbpre}enewswfinfolog where id='$infor[id]' and classid='$infor[classid]'");
- $empire->query("delete from {$dbtbpre}enewsinfovote where id='$infor[id]' and classid='$infor[classid]'");
- $empire->query("delete from {$dbtbpre}enewsdiggips where id='$infor[id]' and classid='$infor[classid]'");
- //删除附件
- DelNewsTheFile($infor['id'],$infor['classid']);
- }
- $deltb=$empire->query("delete from {$dbtbpre}ecms_".$tr[tbname]." where stb='$datatb'");
- //删除表
- $deltb=$empire->query("DROP TABLE IF EXISTS {$dbtbpre}ecms_".$tr[tbname]."_data_".$datatb.";");
- GetConfig(1);//更新缓存
- if($sql)
- {
- //操作日志
- insert_dolog("tid=".$tid."<br>tbname=".$tr[tbname]."&datatb=$datatb");
- printerror("DelDataTableSuccess","db/ListDataTable.php?tid=$tid&tbname=$tr[tbname]");
- }
- 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);
- }
- $string=RepFformSize($f,$string,$type,$fformsize);
- return addslashes($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="text";
- }
- $exp="[!--".$type."--]";
- $r=explode($exp,$data);
- $string=str_replace("[!--enews.var--]",$f,$r[1]);
- return addslashes($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);
- }
- $string=RepFformSize($f,$string,$type,$fformsize);
- return addslashes($string);
- }
-
- //取得select/radio元素代码
- function GetFformSelect($type,$f,$fvalue,$fformsize=''){
- $vr=explode("|",$fvalue);
- $count=count($vr);
- $change="";
- $def=':default';
- for($i=0;$i<$count;$i++)
- {
- $val=$vr[$i];
- $isdef="";
- if(strstr($val,$def))
- {
- $dr=explode($def,$val);
- $val=$dr[0];
- $isdef="||\$ecmsfirstpost==1";
- }
- if($type=='select')
- {
- $change.="<option value=\"".$val."\"<?=\$r[".$f."]==\"".$val."\"".$isdef."?' selected':''?>>".$val."</option>";
- }
- elseif($type=='checkbox')
- {
- $change.="<input name=\"".$f."[]\" type=\"checkbox\" value=\"".$val."\"<?=strstr(\$r[".$f."],\"|".$val."|\")".$isdef."?' checked':''?>>".$val;
- }
- else
- {
- $change.="<input name=\"".$f."\" type=\"radio\" value=\"".$val."\"<?=\$r[".$f."]==\"".$val."\"".$isdef."?' checked':''?>>".$val;
- }
- }
- if($type=="select")
- {
- if($fformsize)
- {
- $addsize=' style="width:'.$fformsize.'"';
- }
- $change="<select name=\"".$f."\" id=\"".$f."\"".$addsize.">".$change."</select>";
- }
- 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=='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;
- }
-
- //返回字段变量
- 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];
- }
- }
- 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)");
- }
- }
-
- //返回字段类型
- 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].")");
- }
- }
- 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].")");
- }
- }
- //采集表新增字段
- 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) values('$add[f]','$add[fname]','$add[fform]','".addslashes($fhtml)."','".addslashes($add[fzs])."',1,1,$add[iscj],'".addslashes($cjhtml)."',$add[myorder],'$add[ftype]','$add[flen]',1,$tid,'$tbname',$add[savetxt],'".addslashes($add[fvalue])."',$add[iskey],$add[tobr],$add[dohtml],'".addslashes($qfhtml)."','$add[isonly]','".addslashes($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]');");
- $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."<br>f=".$add[f]);//操作日志
- printerror("AddFSuccess","db/AddF.php?enews=AddF&tid=$tid&tbname=$tbname");
- }
- 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]);
- }
- }
- 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]);
- }
- }
- //采集表
- 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])
- {
- $fhtml=GetFform($add[fform],$add[f],$add[fvalue],$add[linkfieldval],$add[fformsize],$add);
- }
- else
- {
- $fhtml=AddAddsData($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])
- {
- $qfhtml=GetQFform($add[fform],$add[f],$add[fvalue],$add[fformsize],$add);
- }
- else
- {
- $qfhtml=AddAddsData($add[qfhtml]);
- }
- $sql=$empire->query("update {$dbtbpre}enewsf set f='$add[f]',fname='$add[fname]',fform='$add[fform]',fhtml='".addslashes($fhtml)."',fzs='".addslashes($add[fzs])."',iscj=$add[iscj],cjhtml='".addslashes($cjhtml)."',myorder=$add[myorder],ftype='$add[ftype]',flen='$add[flen]',fvalue='".addslashes($add[fvalue])."',iskey=$add[iskey],tobr=$add[tobr],dohtml=$add[dohtml],qfhtml='".addslashes($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]' 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="<!--record-->";
- $field="<!--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]."<br>f=".$add[f]);//操作日志
- printerror("EditFSuccess","db/ListF.php?tid=$tid&tbname=$tbname");
- }
- 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");//验证权限
- //字段
- $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_infotmp_".$tbname." change ".$f." ".$field);
- }
- $addupdate=",ftype='$add[ftype]'";
- }
- //索引
- $iskey=(int)$add['iskey'];
- if($f=='title'||$f=='titlepic'||$f=='newstime')
- {
- 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.")");
- }
- }
- 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);
- }
- }
- //处理变量
- $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=AddAddsData($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=AddAddsData($add[qfhtml]);
- }
- $sql=$empire->query("update {$dbtbpre}enewsf set fname='$add[fname]',fform='$add[fform]',fhtml='".addslashes($fhtml)."',fzs='".addslashes($add[fzs])."',myorder=$add[myorder],flen='$add[flen]',fvalue='".addslashes($add[fvalue])."',iskey=$iskey,qfhtml='".addslashes($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."<br>f=".$f);//操作日志
- printerror("EditFSuccess","db/EditSysF.php?tid=$tid&tbname=$tbname&fid=$fid");
- }
- 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]);
- }
- 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]);
- }
- //采集表字段
- 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="<!--record-->";
- $field="<!--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;$i<count($re)-1;$i++)
- {
- if(strstr($re[$i].$record,$like))
- {continue;}
- $cj.=$re[$i].$record;
- }
- //更新采集表单
- ChangeMCj($r[mid],$r[tid],$cj);
- $and="cj='$cj'";
- }
- $dh="";
- //录入表单
- if(strstr($r[enter],$like))
- {
- $re1=explode($record,$r[enter]);
- for($i=0;$i<count($re1)-1;$i++)
- {
- if(strstr($re1[$i].$record,$like))
- {continue;}
- $enter.=$re1[$i].$record;
- }
- if(!empty($and))
- {$dh=",";}
- $and.=$dh."enter='$enter'";
- }
- $dh="";
- //投稿表单
- if(strstr($r[qenter],$like))
- {
- $re1=explode($record,$r[qenter]);
- for($i=0;$i<count($re1)-1;$i++)
- {
- if(strstr($re1[$i].$record,$like))
- {continue;}
- $qenter.=$re1[$i].$record;
- }
- if(!empty($and))
- {$dh=",";}
- $and.=$dh."qenter='$qenter'";
- }
- $dh="";
- //内容模板变量
- if(strstr($r[tempvar],$like))
- {
- $re1=explode($record,$r[tempvar]);
- for($i=0;$i<count($re1)-1;$i++)
- {
- if(strstr($re1[$i].$record,$like))
- {continue;}
- $tempvar.=$re1[$i].$record;
- }
- if(!empty($and))
- {$dh=",";}
- $and.=$dh."tempvar='$tempvar'";
- }
- $dh="";
- //列表模板变量
- if(strstr($r[listtempvar],$like))
- {
- $re1=explode($record,$r[listtempvar]);
- for($i=0;$i<count($re1)-1;$i++)
- {
- if(strstr($re1[$i].$record,$like))
- {continue;}
- $listtempvar.=$re1[$i].$record;
- }
- if(!empty($and))
- {$dh=",";}
- $and.=$dh."listtempvar='$listtempvar'";
- }
- $dh="";
- //搜索变量
- if(strstr($r[searchvar],$slike))
- {
- if(!empty($and))
- {$dh=",";}
- $searchvar=str_replace($slike,",",$r[searchvar]);
- $and.=$dh."searchvar='$searchvar'";
- }
- //必填项
- $dh="";
- if(strstr($r[mustqenterf],$slike))
- {
- if(!empty($and))
- {$dh=",";}
- $mustqenterf=str_replace($slike,",",$r[mustqenterf]);
- $and.=$dh."mustqenterf='$mustqenterf'";
- }
- //可增可修改项
- $dh="";
- if(strstr($r[canaddf],$slike))
- {
- if(!empty($and))
- {$dh=",";}
- $canaddf=str_replace($slike,",",$r[canaddf]);
- $and.=$dh."canaddf='$canaddf'";
- }
- $dh="";
- if(strstr($r[caneditf],$slike))
- {
- if(!empty($and))
- {$dh=",";}
- $caneditf=str_replace($slike,",",$r[caneditf]);
- $and.=$dh."caneditf='$caneditf'";
- }
- //结合项
- $dh="";
- if(strstr($r[listandf],$slike))
- {
- if(!empty($and))
- {$dh=",";}
- $listandf=str_replace($slike,",",$r[listandf]);
- $and.=$dh."listandf='$listandf'";
- }
- //排序项
- $dh="";
- if(strstr($r[orderf],$slike))
- {
- if(!empty($and))
- {$dh=",";}
- $orderf=str_replace($slike,",",$r[orderf]);
- $and.=$dh."orderf='$orderf'";
- }
- if($and)
- {
- $empire->query("update {$dbtbpre}enewsmod set ".$and." where mid='$r[mid]'");
- }
- }
- GetConfig(1);//更新缓存
- if($sql)
- {
- //操作日志
- insert_dolog("fid=".$fid."<br>f=".$cr[f]);
- printerror("DelFSuccess","db/ListF.php?tid=$tid&tbname=$tbname");
- }
- 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;$i<count($myorder);$i++)
- {
- $newmyorder=(int)$myorder[$i];
- $usql=$empire->query("update {$dbtbpre}enewsf set myorder=$newmyorder where fid='$fid[$i]'");
- }
- printerror("EditFOrderSuccess","db/ListF.php?tid=$tid&tbname=$tbname");
- }
-
- //转移字段
- 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].")");
- }
- }
- 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].")");
- }
- }
- }
- $selectf='';
- if(empty($fr[tbdataf]))
- {
- $…
Large files files are truncated, but you can click here to view the full file