感谢楼主 chongeryan ,感谢龙族,今天又一次需要用到这个功能,现在是7.2版的,遇到一点困难,后来自己琢磨解决了,也发上来,不要忘了共享精神。由于不懂代码,可能不是很精简或通用,请指正。
按楼主的方法,修改下面的文件: Ecmsinfo.php Listinfo.php alllistinfo.php Userfun.php
但7.2版userfun.php要改的部分有一点不一样,因为7.2把keyboard和infotags放在2个表里(ecms_news和ecms_news_data_1),所以需要从用到2个表,2楼的B步骤可以改为:
//批量复制TAGS到关键词 function eCopyTag2Key($classid,$id,$newstime){ global $empire,$dbtbpre,$class_r; $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++) { $tbname1=$class_r[$classid][tbname];//获取表名 $tbname2=$tbname1."_data_1";//获取ecms_news_data_1 $t = $empire->fetch1("select {$dbtbpre}ecms_".$tbname2.".infotags,{$dbtbpre}ecms_".$tbname1.".keyboard from {$dbtbpre}ecms_".$tbname2.",{$dbtbpre}ecms_".$tbname1." where {$dbtbpre}ecms_".$tbname2.".id='$id[$i]' and {$dbtbpre}ecms_".$tbname1.".id='$id[$i]'");//从信息表中取infotags和keyboard值 //echo "$t['keyboard']"; $taga=$t['infotags'].",".$t['keyboard']; //组合TAGS:在原有的infotags值上加上新keyboard $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]; } $empire->query("update {$dbtbpre}ecms_".$tbname1." set keyboard='".trim($newtags[$i],",")."' where id='$id[$i]'");//将新生成的keyboard写入到表中
} printerror("已成功将TAGS批量复制到关键词字段", "", 1, 0, 1); }
|