dedecms 二次开发之审核时间同步更新
<p><span style="font-size: 14px;">很多研究SEO的个人站长都是使用采集来添加大部分文章的,如果手动每天大量更新伪原创内容,呼~~ 是一个不小的工程!举个例子,一个网站总共10个分类,每天要更新大概80篇的文章。( - -|| 这里都是在说废话!) </span><br style=" font-size: 14px;"/><span style=" font-size: 14px;">开始说重点,DEDE有一个缺点,就是文章在导入到待审核里以后审核出来的时间就是导入的时间。这个是非常不方便的,我每天都要更新很多文章,总不可能每篇都去重新修改日期吧~ 囧死!不知道DEDE作者在想什么........ 我需要的就是点审核后文章立即按照审核的时间更新出来,这样才是完美的! </span><br style=" font-size: 14px;"/><span style=" font-size: 14px;">到管理文件夹下(就是默认DEDE文件夹)找到archives_do.php,打开以后找到审核文章的代码,进行分析。 </span></p><p class="msgborder" style="margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; "><br/>$maintable = ( trim($row['maintable'])=='' ? 'dede_archives' : trim($row['maintable']) ); <br/>
$dsql->ExecuteNoneQuery("Update `dede_arctiny` set arcrank='0' where id='$aid' "); <br/>
if($row['issystem']==-1) <br/>
{ <br/>
$dsql->ExecuteNoneQuery("Update `".trim($row['addtable'])."` set arcrank='0' where aid='$aid' "); <br/>
} <br/>
else <br/>
{ <br/>
$dsql->ExecuteNoneQuery("Update `$maintable` set arcrank='0', dutyadmin='".$cuserLogin->getUserID()."' where id='$aid' "); <br/>
} <br/>
$pageurl = MakeArt($aid,false); <br/>
} <br/>
ShowMsg("成功审核指定的文档!",$ENV_GOBACK_URL); <br/>
exit(); <br/>
} </p><p><br style=" font-size: 14px;"/><span style=" font-size: 14px;">看到以上代码可以了解到文章审核后的时间根本没有去定义,也就是说文章默认什么时间就是什么时间的。我们应该增加一个时间函数来定义审核后的时间,这样才可以做到同步更新 </span><br style=" font-size: 14px;"/><span style=" font-size: 14px;">新增$newdate来定义时间。修改代码如下 </span></p><p class="msgborder" style="margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; "><br/>
$maintable = ( trim($row['maintable'])=='' ? 'dede_archives' : trim($row['maintable']) ); <br/>
$newdate = time(); <br/>
$dsql->ExecuteNoneQuery("Update `dede_arctiny` set sortrank='$newdate',senddate='$newdate',arcrank='0' where id='$aid' "); <br/>
if($row['issystem']==-1) <br/>
{ <br/>
$dsql->ExecuteNoneQuery("Update `".trim($row['addtable'])."` set sortrank='$newdate',pubdate='$newdate',senddate='$newdate',arcrank='0' where aid='$aid' "); <br/>
} <br/>
else <br/>
{ <br/>
$dsql->ExecuteNoneQuery("Update `$maintable` set sortrank='$newdate',pubdate='$newdate',senddate='$newdate',arcrank='0' where id='$aid' "); <br/>
} <br/>
$pageurl = MakeArt($aid,false); <br/>
} <br/>
ShowMsg("成功审核指定的文档!",$ENV_GOBACK_URL); <br/>
exit(); <br/>
} </p><p><br style=" font-size: 14px;"/><span style=" font-size: 14px;">这样修改后只要点审核,文章则取系统时间为文章发布时间更新出去。</span></p><p> </p><p>从幻灯片的源码中可以看出本放灯片的所有图片、title、描述都是固定的,不能灵活调用。如果要实现灵活调用,我们就必须要用到DEDE的调用标签,这里Zero使用了dede:arclist标签实现了调用。不过在调用时我们需要注意以下几点: <br/>1、###分隔,由于最后一条数据结尾不需要###分隔,因此1-4条和最后一条需要分开处理。这里Zero采用limit标签实现,limit标签在以后接触mysql数据库时会详细介绍。 <br/>2、两条数据中间不能有空格,也就是说images/01.jpg###images/02.jpg这样的两条数据之间是不能允许有空格和换行的,如果有则不能运行。而arclist调用数据时会自动出现空格和换行,那么怎么办呢?修改arclist.lib.php文件413行中的$artlist .= $dtp2->GetResult().”\r\n”;修改为:$artlist .= $dtp2->GetResult()。(当然通过调整JS也可以达到同样的效果,但是目前Zero对于JS还不够熟悉因此只能通过修改DEDECMS源码来实现) <br/>3、幻灯片中的title标签里不能出现修饰性代码,比如“<span style="color:’#FF0000′">Zero的php博客-零基础PHP教程</span> ”。如果出现这类标签在JS文件中,将不能被解释。因此我们需要格式化html文件,因此在title调用一栏中Zero使用了标签调用。 <br/><br/>好了到这里一个能在DEDECMS里自动调用图片、title、描述的幻灯片就调试完毕了。 </p>
頁:
[1]