A、以下代码加入到admin/ecmsinfo.php 在任意2个elseif中间插入就行
1 2 3 4 5 6 7 8 |
elseif($enews=="AddTags_all")//列表批量添加Tags { $classid=$_POST['classid']; $id=$_POST['id']; $tags=$_POST['add_listtags']; $newstime=time(); eInsertTags2($tags,$classid,$id,$newstime); } |
B、将以下代码加入到class/uesrfun.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
<?php //---------------------------用户自定义标签函数文件 /** {$dbtbpre}ecms_".$tbname."_data_1 从信息分表。 这块,请高手 修正,如何得到分表。 **/ //加入TAG表 function eInsertTags2($tags,$classid,$id,$newstime){ global $empire,$dbtbpre,$class_r; $tags = RepPostVar($tags); //$tag = explode(",", $tags); $count = count($id); //统计ID数量 if (empty($count)) {//如果id没选中 printerror("未选择信息ID", "", 1, 0, 1); } $classid=(int)$classid; $id[$i] = (int)$id[$i]; $mid=(int)$class_r[$classid][modid];//取modid值 for($i=0;$i<$count;$i++) { $tbname=$class_r[$classid][tbname];//获取表名 $t = $empire->fetch1("select infotags from {$dbtbpre}ecms_".$tbname."_data_1 where id='$id[$i]'");//从信息表中取infotags值 $taga=$t['infotags'].",".$tags; //组合TAGS:在原有的infotags值上加上新tag $tagb[$i] = explode(",",$taga); //设置数组:用,分割tag $tagc=array_values(array_unique($tagb[$i])); //数组排重:排除重复? for($t=0;$t<count($tagb[$i]);$t++) {//二级子循环TAGS数组输出 $newtags[$i].= ",".$tagc[$t]; $r=$empire->fetch1("select tagid from {$dbtbpre}enewstags where tagname='$tagc[$t]' limit 1");//查询有无同名的tag if($r[tagid]) {//如果有tagid,即enewstags表中有相同tag $datar=$empire->fetch1("select tagid,classid,newstime from {$dbtbpre}enewstagsdata where tagid='$r[tagid]' and id='$id[$i]' and mid='$mid' limit 1");//用tagid,id和mid对enewstagsdata进行查询 if($datar[tagid]) {//如果有数据 if($datar[classid]!=$classid||$datar[newstime]!=$newstime) {//如果classid和newstime不相同 $empire->query("update {$dbtbpre}enewstagsdata set classid='$classid',newstime='$newstime' where tagid='$r[tagid]' and id='$id[$i]' and mid='$mid' limit 1");//则开始更新 } } else {//查询后没有此数据,则先更新enewstags表,在数量上加1 $empire->query("update {$dbtbpre}enewstags set num=num+1 where tagid='$r[tagid]'"); $empire->query("update {$dbtbpre}ecms_".$tbname."_data_1 set infotags='".trim($newtags[$i],",")."' where id='$id[$i]'");//然后在信息表infotags字段中加上这个新tag,如果按舍得的方法,这一步就可以免了 $empire->query("insert into {$dbtbpre}enewstagsdata(tagid,classid,id,newstime,mid) values('$r[tagid]','$classid','$id[$i]','$newstime','$mid');");//然后在enewstagsdata表中插入这些数据 } } else {//如果没有此tag //{$dbtbpre}ecms_".$tbname." $empire->query("update {$dbtbpre}ecms_".$tbname."_data_1 set infotags='".trim($newtags[$i],",")."' where id='$id[$i]'");//先在信息表中加上此tag,如果按舍得的方法,这一步就可以免了 $empire->query("insert into {$dbtbpre}enewstags(tagname,num,isgood,cid) values('$tagc[$t]',1,0,0);");//在enewstags表中插入新值 $tagid=$empire->lastid();//把这个tagid给取出来 $empire->query("insert into {$dbtbpre}enewstagsdata(tagid,classid,id,newstime,mid) values('$tagid','$classid','$id[$i]','$newstime','$mid');");//既然是没有tagid的,那就在enewstagsdata也得插入新值(不用再查询) } } } printerror("批量添加TAGS成功", "", 1, 0, 1); } ?> |
C、信息管理列表模板最后一列修改成以下代码 e/data/html/list/listinfo.php和alllistinfo.php文件内
1 2 3 4 5 6 7 8 9 10 11 12 |
<tr bgcolor="#FFFFFF"> <td height="25" colspan="8" align="right"> <input type="text" name="add_listtags" id="add_listtags" size="50" value="" /> <input type="button" name="Submit" value="选择" onclick="window.open('tags/ChangeTags.php?form=listform&field=add_listtags<?=$ecms_hashur['ehref']?>','','width=700,height=550,scrollbars=yes');"> <input type="submit" name="Submit100" value="批量添加TAGS" onClick="document.listform.enews.value='AddTags_all';document.listform.action='ecmsinfo.php';"> <font color="#666666">备注:多选框蓝色为未审核信息;发布者红色为会员投稿;信息ID粗体为未生成,点击ID可刷新页面.</font> </td> </tr> |