帝国cms信息列表页如何批量添加tags

原创 新起点博客  2020-12-21 13:51 
【上云必备】上云仅?102/年

有些时候,我们需要对几十条文章数据批量添加Tags,而帝国CMS并没有自带这个功能,所以本文介绍了在列表页面批量添加Tags的方法。网上流传的是6.6版本使用的,这里修改后7.0,7.2版本可用的。

本文介绍通过修改程序源码实现在管理资讯时批量添加Tags,效果如下图:

修改方法:

1、打开/e/admin/ecmsinfo.php,在任意2个elseif中间插入以下代码:

elseif($enews=="AddTags_all")//列表批量添加Tags    
{    
$classid=$_POST['classid'];    
$id=$_POST['id'];    
$tags=$_POST['add_listtags'];    
$newstime=time();    
eInsertTags2($tags,$classid,$id,$newstime);    
}

2、打开/e/data/html/list/alllistinfo.php及listinfo.php(两个文件都要修改):

查找:

<td height="25" colspan="8"> <font color="#666666">备注:多选框蓝色为未审核信息;发布者红色为会员投稿;信息ID粗体为未生成,点击ID可刷新页面.</font></td>

修改为:

<td height="25" colspan="8">
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td height="25"><font color="#666666">备注:多选框蓝色为未审核信息;发布者红色为会员投稿;信息ID粗体为未生成,点击ID可刷新页面.</font></td>
            <td style="float:right"><input type="text" name="add_listtags" id="add_listtags" size="50" value="" /><input type="submit" name="Submit100" value="添加TAGS" onClick="document.listform.enews.value='AddTags_all';document.listform.action='ecmsinfo.php';"></td>
        </tr>
    </table>
</td>

3、将以下代码加入到/e/class/userfun.php

//加入TAG表    
function eInsertTags2($tags,$classid,$id,$newstime){    
        global $empire,$dbtbpre,$class_r;    
        if(!trim($tags))    
        {    
                printerror("TAGS信息不能为空", "", 1, 0, 1);    
        return '';    
        }
    $count = count($id); //统计ID数量    
    if (empty($count)){printerror("未选择信息ID", "", 1, 0, 1);}    
    $tags = RepPostVar($tags);    
    $tag = explode(",", $tags);    
    if (count($tag)>1) {  printerror("只能添加一个TAGS词", "", 1, 0, 1); }       
    $classid=(int)$classid;    
    $mid=(int)$class_r[$classid][modid]; //获取模型id
    $tbname=$class_r[$classid][tbname];//获取表名
        for($i=0;$i<$count;$i++)    
        { 
        $id[$i] = (int)$id[$i];
        $fb = $empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id[$i]' limit 1");
        $classid=$fb['classid'];
        $newstime=$fb['newstime'];
        $ftbname=$dbtbpre."ecms_".$tbname."_data_".$fb['stb'];
        $r=$empire->fetch1("select tagid from {$dbtbpre}enewstags where tagname='$tags' limit 1");    
        $t = $empire->fetch1("select infotags from {$ftbname} where id='$id[$i]'");    
        $taga=$t['infotags'].",".$tags; //组合TAGS
        $taga=trim($t['infotags'].",".$tags,","); //组合TAGS
        $tagb[$i] = explode(",",$taga); //设置数组                  
        $tagc=array_values(array_unique($tagb[$i])); //数组排重 
        $newtags[$i]=implode(",",$tagc);
        if($r[tagid])    
                {    
                        $datar=$empire->fetch1("select tagid,classid,newstime from
 
{$dbtbpre}enewstagsdata where tagid='$r[tagid]' and id='$id[$i]' and mid='$mid' limit 1");    
                        if($datar[tagid])    
                        {    
                                if($datar[classid]!=$classid||$datar[newstime]!=$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   
                        {    
                          $empire->query("update {$dbtbpre}enewstags set num=num+1 where tagid='$r[tagid]'");    
                          $empire->query("update {$ftbname} set infotags='$newtags[$i]' where id='$id[$i]'");    
                          $empire->query("insert into {$dbtbpre}enewstagsdata(tagid,classid,id,newstime,mid)
 
values('$r[tagid]','$classid','$id[$i]','$newstime','$mid');");    
                        }    
                }    
                else   
                {    
                        $empire->query("update {$ftbname} set infotags='$newtags[$i]' where id='$id[$i]'");    
            $empire->query("insert into {$dbtbpre}enewstags(tagname,num,isgood,cid) values('$tags',1,0,0);");    
                        $tagid=$empire->lastid();    
                        $empire->query("insert into {$dbtbpre}enewstagsdata(tagid,classid,id,newstime,mid) values
 
('$tagid','$classid','$id[$i]','$newstime','$mid');");    
                }    
        }    
    printerror("批量添加TAGS成功", "", 1, 0, 1);    
}

 

本文地址:https://www.henenseo.com/archives/4037
关注我们:请关注一下我们的微信公众号:扫描二维码新起点博客的公众号,公众号:xinqidian129
版权声明:本文为原创文章,版权归 新起点博客 所有,欢迎分享本文,转载请保留出处!
宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取
【腾讯云】海外1核2G服务器低至2折,半价续费券限量免费领取!

发表评论


表情