DEDE使用火車采集器實(shí)現(xiàn)的自動實(shí)時(shí)發(fā)布文章和更新HTMl的功能。
一,為什么有這個想法:
使用火車發(fā)布文章,有三大不足。
需要登陸發(fā)布,受DEDE系統(tǒng)限制太大
就是一次發(fā)布的數(shù)量有限制,可能造成一次性發(fā)布太多遭K的惡果
如果網(wǎng)站首頁是靜態(tài)文件,則不能更新首頁,用戶就不知道網(wǎng)站的更新情況
如果沒有一臺可以一直運(yùn)行的服務(wù)器,使用火車采集器的自動更新功能就不太現(xiàn)實(shí)
火車采集器的自動更新功能是收費(fèi)的,呵呵。
自己需要咯,想挑戰(zhàn)一下自己咯等。
二,Do it.
首先想到,讓火車發(fā)布大量數(shù)據(jù),且將文章屬性設(shè)置為未審核狀態(tài),這個問題很簡單,使用DEDEv5.3.1時(shí)卻遇到DEDE的一個Bug。就是未審核的文章居然會在前臺顯示。先是對DEDE一氣臭罵,后來找了一些原因,發(fā)現(xiàn)了DEDEv5.3.1中的一個Bug.經(jīng)修復(fù)后可以實(shí)現(xiàn)未審核的文章不在前臺顯示。1月13號到DEDE報(bào)告Bug以后,1月14號DEDE出的補(bǔ)丁中修復(fù)了這個問題,呵呵,所以,1月15號,就是今天咯,開始正式整理此開發(fā)文檔。
實(shí)際發(fā)現(xiàn),發(fā)布和保存大量未審核文章不成問題,難在如何實(shí)現(xiàn)隨機(jī)激發(fā)發(fā)布功能。想了很久,覺得使用時(shí)間限制最好。當(dāng)前臺JS調(diào)用了審核文章的鏈接,傳遞一個訪問用戶的信息,程序取得用戶的IP并保存為SESSION信息,此時(shí),審核一篇文章并生成文章與首頁靜態(tài)文件。一個用戶在一定的時(shí)間內(nèi),只能激活限定數(shù)量的文章,且,發(fā)布時(shí)使用此用戶的IP信息,呵,挺個性的。
激活文章,生成文章靜態(tài)頁和首頁靜態(tài)文章,受網(wǎng)站模板的影響,可能會比較慢,則會出現(xiàn)首頁未生成完頁面就被關(guān)閉的問題。所以,最好的辦法是,在發(fā)布時(shí)文章時(shí)就生成文章靜態(tài)文件,然后把文章設(shè)置為未審核狀態(tài)。激活文章時(shí)則只需要很短的查詢。首頁或者列表頁盡量使用動態(tài)頁,這兩個問題不好處理,只能以此法代之。
完整的過程就是,發(fā)布文檔時(shí),將文檔設(shè)置為未審核狀態(tài);調(diào)用程序時(shí),先判斷上一次查詢的緩存有沒有超時(shí),如果超過緩存時(shí)間,則清除緩存,以顯示最新的文章。清除緩存以后,查詢出一定數(shù)量屬性為未審核的文檔,將Archives和Arctiny表中的未審核屬性取消,并更新一下文檔的Pubdate字段,實(shí)現(xiàn)一點(diǎn)隨機(jī)化。最后寫入緩存,禁止緩存有效期內(nèi)的重復(fù)更新!
三,文件使用方法:
發(fā)布文檔時(shí)請把文檔屬性設(shè)置為未審核狀態(tài),即發(fā)布時(shí)提交的文檔屬性參數(shù)為:arcrank=-1,這時(shí)為動態(tài)瀏覽;
如果你想生成靜態(tài)文檔,請將文檔狀態(tài)設(shè)置為正常瀏覽狀態(tài),即arcrank=0;然后修改默認(rèn)文檔添加程序。
如:arcticle_add.php,在文件最下邊“//生成HTML”處添加一段代碼:
//生成HTML
InsertTags($tags,$arcID);
$artUrl = MakeArt($arcID,true,true);
if($artUrl=='')
{
$artUrl = $cfg_phpurl."/view.php?aid=$arcID";
}
$dsql->ExecuteNoneQuery("UPDATE `cmsxx_archives` SET `arcrank`='-1' WHERE (`id`='$arcID');");
$dsql->ExecuteNoneQuery("UPDATE `cmsxx_arctiny` SET `arcrank`='-1' WHERE (`id`='$arcID');");
然后,上傳New.php到你的網(wǎng)站根目錄,到Dede后臺設(shè)置系統(tǒng)基本設(shè)置中,將性能選項(xiàng)卡中的arclist標(biāo)簽調(diào)用緩存時(shí)間設(shè)置為一個合適的數(shù),如3600表示一個小時(shí)刷新一次緩存。
最后,在模板文件頂部調(diào)用一段代碼即可:
“ <script type=”text/javascript” src=”{dede:global.cfg_cmsurl/}/new.php”></script> ”。
支持的參數(shù):
no=每次隨機(jī)更新的數(shù)量,為空時(shí)默認(rèn)為5;
typeid=欄目ID,為空則是全站數(shù)據(jù)
order=排序方式,支持Desc:倒序,Asc:順序,Rand:隨機(jī),默認(rèn)為隨機(jī)查詢。
如:
“ <script type=”text/javascript” src=”{dede:global.cfg_cmsurl/}/new.php?no=100&typeid=2&order=desc”></script> ”
排序?yàn)镈esc的時(shí)候,是按先發(fā)布的文章先審核的方式進(jìn)行發(fā)布的,Asc反之,Rand為隨機(jī)。
四,這是我們在數(shù)據(jù)處理方面做的一個嘗試,也許這種新的模式會是一次突破。祝大家使用愉快。有Bug或者建議請回復(fù)于后。
點(diǎn)此下載文件:
dedecms_v.rar
[分享:織夢dede定時(shí)更新首頁生成HTML的方法]
[織夢后臺更新提示:DedeTag Engine Create File False 出錯解決辦法]
[分享:織夢dede定時(shí)更新首頁生成HTML的方法]
[關(guān)于后臺更新廣告而前臺沒有改變的解決方法]
[dede首頁調(diào)用隨機(jī)文章定時(shí)自動更新]
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 關(guān)于織夢CMS用火車頭自動發(fā)布文章并更新HTMl