/ 中存储网

解决Dedecms 5.7 tags列表文章显示未审核的bug

2016-03-07 20:25:09 来源:中存储网

Dedecms tags列表默认会显示所有文章,无论是审核还是未审核,这个是bug,本文介绍解决Dedecms 5.7 tags列表文章显示未审核的bug的方法

其实很简单,找到/include/arc.taglist.class.php这个文件,在其中修改两处即可

第一处修改:

找到:

$cquery = "SELECT COUNT(*) AS dd FROM `dede_taglist` WHERE tid = '{$this->TagInfos['id']}' AND arcrank >-1 ";

替换为:

$cquery = "SELECT count(*) AS dd FROM dede_taglist,dede_archives WHERE dede_taglist.tid = '{$this->TagInfos['id']}' AND dede_archives.id=dede_taglist.aid and  dede_archives.arcrank > -1";

原理:修改后的代码新添加了两个条件
第一个条件“必须tags表中的文章ID和文章表中的ID相同”代码:dede_archives.id=dede_taglist.aid
第二个条件是“文章中必须是审核状态”代码:dede_archives.arcrank > -1

第二处修改:

找到:

$this->dsql->SetQuery("SELECT aid FROM `dede_taglist` WHERE tid = '{$this->TagInfos['id']}' AND arcrank>-1 LIMIT $limitstart,$getrow");

替换为:

$this->dsql->SetQuery("SELECT dede_taglist.aid FROM dede_taglist,dede_archives WHERE dede_taglist.tid = '{$this->TagInfos['id']}' AND dede_archives.id=dede_taglist.aid and  dede_archives.arcrank > -1 LIMIT $limitstart,$getrow");

原理:在这里添加的代码原理就和在上一步已经说很清楚了,这里就不详细解释了,唯一需要说明的是这里加了一个“LIMIT $limitstart,$getrow”,这个是分页用的。

最后,上次这个arc.taglist.class.php覆盖旧的就可以了。