未审核稿件的标签会显示在标签列表页面, 这可以说是DEDE的一个bug吧. 虽然点击进入标签时, 相关的未审核文章不会显示出来. 但一个没有内容的标签内容页面总是不好的用户体验.
要解决这个问题, 让DEDE的不显示未审核稿件的标签, 就要修改标签的显示库文件 tag.lib.php
tag.lib.php这个文件可以在 /include/taglib/tag.lib.php 中找到, 这个文件就要控制 tag的显示, 在文件中找到以下代码.
if(!empty($typeid))
{
$addsql = ” where typeid=’$typeid’ “;
}
修改成:
$dsql->SetQuery(“Select tid From `#@__taglist` where arcrank<=-1″); $dsql->Execute();
$ids = ”;
while($row = $dsql->GetArray())
{
$tid = $row[‘tid’];
$cquery = “Select count(*) as dd From `#@__taglist` where tid = $tid and arcrank<=-1″;
$crow = $dsql->GetOne($cquery);
if(!$crow[‘dd’])
{
$ids .= ( $ids==” ? $row[‘tid’] : ‘,’.$row[‘tid’] );
}
}
if($ids != ”)
{
$addsql = ” where id not in($ids) “;
}
if(!empty($typeid))
{
if($addsql)
{
$addsql .= ” and typeid=’$typeid’ “;
}else{
$addsql = ” where typeid=’$typeid’ “;
}
}
这样就不会显示的未审核稿件的标签.
原创文章 转载请注明出处: 登高望远 [ http://www.dengor.com/archives/734.html ]
俺是可放大监控 发达
不错啊,写的好啊
$dsql->SetQuery(“Select tid From `#@__taglist` where arcrank = 0 “);
$dsql->Execute();
$ids = ”;
while($row = $dsql->GetArray())
{
$tid = $row[‘tid’];
$cquery = “Select count(*) as dd From `#@__taglist` where tid = $tid and arcrank = 0 “;
$crow = $dsql->GetOne($cquery);
if(!$crow[‘dd’])
{
$ids .= ( $ids==” ? $row[‘tid’] : ‘,’.$row[‘tid’] );
}
}
if($ids != ”)
{
$addsql = ” where id in($ids) “;
}
if(!empty($typeid))
{
if($addsql)
{
$addsql .= ” and typeid=’$typeid’ “;
}else{
$addsql = ” where typeid=’$typeid’ “;
}
}
测式了没效果哈
dede5.7下代码不行,直接打不开。求5.7修改方法!!希望朋友能解决!