本文介紹通過修改源碼讓dedecms實現自動審核會員發布的文章,方便有時站長不在電腦前,并且能夠自動更新網站的解決方法。
分析了一下,dede的文章有沒有審核發布主要是arcrank這個參數的值決定的。所以要把dede自動審核發布文章也很容易實現了。
<?php
//自動生成html版
if(isset($_get['pub'])){
require_once (dirname(__file__) . /include/common.inc.php);
require_once dedeinc./arc.partview.class.php;
//發布審核稿件
require_once(dedeinc./arc.archives.class.php);
for ($i=1; $i<=1; $i++) {
$row = $dsql->getone(select * from 'dede_arctiny' where arcrank = -1 order by id limit 1);
$id = $row['id'];
$iquery = update 'dede_arctiny' set arcrank = 0 where id='$id';
$dsql->executenonequery($iquery);
$iquery2 = update 'dede_archives' set arcrank = 0, ismake = 1 where id='$id';
$dsql->executenonequery($iquery2);
$dsql->executenonequery(update 'dede_taglist' set 'arcrank' = 0 where aid='$id');
$ac = new archives($id);
$rurl = $ac->makehtml();
}
//更新首頁
$globals['_arclistenv'] = 'index';
$row = $dsql->getone(select * from 'dede_homepageset');
$row['templet'] = mftemplet($row['templet']);
$pv = new partview();
$pv->settemplet($cfg_basedir . $cfg_templets_dir . / . $row['templet']);
$pv->savetohtml(dirname(__file__).'/index.html');
include(dirname(__file__).'/index.html');
exit();
}else{
header('http/1.1 301 moved permanently');
header('location:index.html');
}
?>
上面的代碼主要就是更新arcrank的值,沒有發布的文章arcrank=-1,而發布的文章arcrank=0,所以自審核的文章就是把arcrank為-1的文章找出來,把文章的arcrank屬性變為0。
找出文件:
$row = $dsql->getone(select * from 'dede_arctiny' where arcrank = -1 order by id limit 1″);
改變屬性:
$iquery2 = update 'dede_archives' set arcrank = 0, ismake = 1 where id='$id';
$dsql->executenonequery($iquery2);
相關表的更新:
$dsql->executenonequery($iquery2);
$dsql->executenonequery(update 'dede_taglist' set 'arcrank' = 0 where aid='$id');
經常上面的修改,再重新生成頁面。就能自動審核未審核稿件。全部都自動化了。當然還可以設置欄目,限定自動審核的范圍,這就看具體的需求了。