帝国论坛帝国网站管理系统交流区帝国CMS使用交流[分享]帝国7.5批量添加TAGS、复制TAGS到关键字方法 【本版专题贴子】  
 1/2     1 2 ›› ›|
主题:[分享]帝国7.5批量添加TAGS、复制TAGS到关键字方法 [加入收藏夹]   

itohok
用户头衔:书生

精华贴   :0
发贴数   :21
经验值   :226
注册时间:2008-06-16
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[分享]帝国7.5批量添加TAGS、复制TAGS到关键字方法
本人7.5,其它版本未测试,需要的自己操作试试

1、e/class/userfun.php替换成以下代码



<?php
//---------------------------用户自定义标签函数文件





//批量复制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;//这一步可省略

   $mid=(int)$class_r[$classid][modid];//取modid值,这一步可省略

   for($i=0;$i<$count;$i++)

   {

       $id[$i] = (int)$id[$i];

       $tbname=$class_r[$classid][tbname];//获取表名

       $r = $empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id[$i]' limit 1");

       $t = $empire->fetch1("select infotags from {$dbtbpre}ecms_".$tbname."_data_".$r['stb']." where id='$id[$i]'");//从信息表中取infotags和keyboard值

       $t=array_merge($r,$t);

       $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_".$tbname." set keyboard='".trim($newtags[$i],",")."' where id='$id[$i]'");//将新生成的keyboard写入到表中

   }

   printerror("已成功将TAGS批量复制到关键词字段", "", 1, 0, 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;

   $mid=(int)$class_r[$classid][modid];//取modid值

   for($i=0;$i<$count;$i++)

   {

       $id[$i] = (int)$id[$i];

       $tbname=$class_r[$classid][tbname];//获取表名

       $r1 = $empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id[$i]' limit 1");

       $t = $empire->fetch1("select infotags from {$dbtbpre}ecms_".$tbname."_data_".$r1['stb']." where id='$id[$i]'");//从信息表中取infotags和keyboard值

       $t=array_merge($r1,$t);

       $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_".$r1['stb']." 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

                   $empire->query("update {$dbtbpre}ecms_".$tbname."_data_".$r1['stb']." 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);

}


?>




2、admin/ecmsinfo.php在文件elseif中间插入以下代码


elseif($enews=="CopyTag2Key")//列表批量复制Tags为关键词

{

               $classid=$_POST['classid'];

               $id=$_POST['id'];

       $newstime=time();  

       eCopyTag2Key($classid,$id,$newstime);

}

elseif($enews=="AddTags_all")//列表批量添加Tags

{

               $classid=$_POST['classid'];

               $id=$_POST['id'];

               $tags=$_POST['add_listtags'];

       $newstime=time();  

       eInsertTags2($tags,$classid,$id,$newstime);

}



3、e/data/html/list/listinfo.php 把最后一行<tr>替换成



<tr bgcolor="#FFFFFF">
      <td height="25" colspan="8">   
      <table width="100%" border="0" cellpadding="0" cellspacing="0">   
          <tr>     
            <td width="68%" height="25">     
              <font color="#666666"><input type="text" name="add_listtags" id="add_listtags" size="50" value="" />&nbsp;&nbsp;

<input type="submit" name="Submit100" value="批量添加TAGS" onClick="document.listform.enews.value='AddTags_all';document.listform.action='ecmsinfo.php';">&nbsp;&nbsp;<input type="submit" name="Submit99" value="批量复制TAGS" onClick="document.listform.enews.value='CopyTag2Key';document.listform.action='ecmsinfo.php';"><p>备注:1.先选中要操作的ID,然后在左侧文本框内直接输入多个关键词,以","隔开;然后点击批量添加TAGS即可;之后可点击"批量复制TAGS"将TAG复制到关键词字段.</p><p>2.多选框蓝色为未审核信息;发布者红色为会员投稿;信息ID粗体为未生成,点击ID可刷新页面.</p></font>   
            </td>   
              
          </tr>   
        </table>      
      </td>
      
    </tr>


上传以下图片:


[该贴被修改 2 次,最后修改时间 2020-01-14 16:22:29 ]


不是每个人都愿意帮助别人,尤其站长界.成功的人会离开,因为这里不再有他们想要的。
2020-01-14 16:18:57 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3012
经验值   :8585
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

感谢分享



帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2020-01-14 19:05:48 已设置保密 顶部 回复 引用 报告 编辑 删除

honeche
用户头衔:进士

精华贴   :0
发贴数   :1615
经验值   :4711
注册时间:2014-11-17
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

支持下




2020-01-15 07:40:18 已设置保密 顶部 回复 引用 报告 编辑 删除

html高手
用户头衔:探花

精华贴   :0
发贴数   :9114
经验值   :23336
注册时间:2008-02-23
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

支持一下




2020-01-15 08:52:22 已设置保密 顶部 回复 引用 报告 编辑 删除

tm2014
用户头衔:探花

精华贴   :0
发贴数   :2388
经验值   :6796
注册时间:2014-11-13
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

支持一下




2020-01-16 00:41:05 已设置保密 顶部 回复 引用 报告 编辑 删除

pingpong
用户头衔:探花

精华贴   :0
发贴数   :9328
经验值   :24281
注册时间:2008-11-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

支持一下




2020-01-17 08:15:48 已设置保密 顶部 回复 引用 报告 编辑 删除

春哥
用户头衔:进士

精华贴   :0
发贴数   :1630
经验值   :4591
注册时间:2009-01-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

代码有点长,看着头大




2020-01-18 00:16:49 已设置保密 顶部 回复 引用 报告 编辑 删除

csdn2
用户头衔:探花

精华贴   :0
发贴数   :4539
经验值   :13279
注册时间:2013-11-21
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

支持下




2020-01-19 08:21:08 已设置保密 顶部 回复 引用 报告 编辑 删除

ashubyron
用户头衔:秀才

精华贴   :0
发贴数   :54
经验值   :329
注册时间:2009-02-08
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

有否复制关键字到tag的代码?



管理软件网 http://www.tobecio.com
2020-01-19 18:10:15 已设置保密 顶部 回复 引用 报告 编辑 删除

时节
用户头衔:进士

精华贴   :0
发贴数   :1836
经验值   :4925
注册时间:2014-05-26
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

支持下




2020-01-20 07:42:31 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/2     1 2 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1