开始说重点,DEDE有一个缺点,就是文章在导入到待审核里以后审核出来的时间就是导入的时间。这个是非常不方便的,我每天都要更新很多文章,总不可能每篇都去重新修改日期吧~ 囧死!不知道DEDE作者在想什么........ 我需要的就是点审核后文章立即按照审核的时间更新出来,这样才是完美的!
到管理文件夹下(就是默认DEDE文件夹)找到archives_do.php,打开以后找到审核文章的代码,进行分析。
代码如下:
$maintable = ( trim($row['maintable'])=='' ? 'dede_archives' : trim($row['maintable']) );
$dsql->ExecuteNoneQuery("Update `dede_arctiny` set arcrank='0' where id='$aid' ");
if($row['issystem']==-1)
{
$dsql->ExecuteNoneQuery("Update `".trim($row['addtable'])."` set arcrank='0' where aid='$aid' ");
}
else
{
$dsql->ExecuteNoneQuery("Update `$maintable` set arcrank='0', dutyadmin='".$cuserLogin->getUserID()."' where id='$aid' ");
}
$pageurl = MakeArt($aid,false);
}
ShowMsg("成功审核指定的文档!",$ENV_GOBACK_URL);
exit();
}
看到以上代码可以了解到文章审核后的时间根本没有去定义,也就是说文章默认什么时间就是什么时间的。我们应该增加一个时间函数来定义审核后的时间,这样才可以做到同步更新
新增$newdate来定义时间。修改代码如下
代码如下:
$maintable = ( trim($row['maintable'])=='' ? 'dede_archives' : trim($row['maintable']) );
$newdate = time();
$dsql->ExecuteNoneQuery("Update `dede_arctiny` set sortrank='$newdate',senddate='$newdate',arcrank='0' where id='$aid' ");
if($row['issystem']==-1)
{
$dsql->ExecuteNoneQuery("Update `".trim($row['addtable'])."` set sortrank='$newdate',pubdate='$newdate',senddate='$newdate',arcrank='0' where aid='$aid' ");
}
else
{
$dsql->ExecuteNoneQuery("Update `$maintable` set sortrank='$newdate',pubdate='$newdate',senddate='$newdate',arcrank='0' where id='$aid' ");
}
$pageurl = MakeArt($aid,false);
}
ShowMsg("成功审核指定的文档!",$ENV_GOBACK_URL);
exit();
}
这样修改后只要点审核,文章则取系统时间为文章发布时间更新出去。
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!