我們做網(wǎng)站時(shí),經(jīng)常會(huì)把數(shù)據(jù)庫(kù)導(dǎo)來(lái)導(dǎo)去,有時(shí)偶爾不夠細(xì)心,有些參數(shù)沒有改過(guò)來(lái),之前有做過(guò)一個(gè)系統(tǒng)把內(nèi)容導(dǎo)入到dedecms中但是會(huì)發(fā)現(xiàn)生成時(shí)未審核的文檔也會(huì)在列表頁(yè)面顯示并且是以plus/view.php?id形式顯示的。下下我們來(lái)看看問(wèn)題解決的辦法。
織夢(mèng)的文檔數(shù)據(jù)都是存在MySQL數(shù)據(jù)表里面的,就默認(rèn)的安裝的織夢(mèng)系統(tǒng)來(lái)說(shuō),發(fā)的文章、軟件、圖片等等的文檔信息,都會(huì)儲(chǔ)存在dede_archives表中,dede_archives表是文檔的主表??棄?mèng)是如何來(lái)判斷一篇文檔是否審核或者是否已經(jīng)生成HTML文件的呢?
就是通過(guò)dede_archives表中的arcrank和ismake兩個(gè)字段,今天來(lái)了解這兩個(gè)字段的含義。具體來(lái)說(shuō)arcrank是看這篇文章審核沒有,它有-1和0兩個(gè)值;ismake是代表是否生成了靜態(tài)文件,它有三個(gè)值:0,1,-1。
下面是對(duì)各種情況進(jìn)行組合,都有可能出現(xiàn)的文檔狀態(tài):
審核狀態(tài)生成html:$arcrank=-1 $ismake = 0 (但是后臺(tái)文章列表那里顯示沒有生成,點(diǎn)擊修改文章是顯示以生成,其實(shí)沒生成,因?yàn)槭俏磳徍?,一但審核,自?dòng)變成1)。
審核狀態(tài)動(dòng)態(tài)瀏覽:$arcrank=-1 $ismake = -1 ;
開放狀態(tài)生成html:$arcrank=0 $ismake = 1 ;
開放狀態(tài)動(dòng)態(tài)瀏覽:$arcrank=0 $ismake = -1 ;
總結(jié)一下,通過(guò)上面四個(gè),得出以下結(jié)論:
$arcrank =-1是代表未審核,0帶表審核:
$ismake生成html:0或者1; 入庫(kù)的時(shí)候是0,程序會(huì)判斷是不是生成了html,如果是會(huì)調(diào)整到1;
另外還有一個(gè)需要注意的地方,就是織夢(mèng)還有一個(gè)文檔微表dede_arctiny,如果我們?cè)谑褂肧QL語(yǔ)句對(duì)文檔批量進(jìn)行審核或者未審核操作時(shí),必須把微表中的arcrank字段也設(shè)為相同的值
網(wǎng)上比較常見的辦法是使用SQL語(yǔ)句設(shè)置,具體的SQL語(yǔ)句如下:
代碼如下 |
復(fù)制代碼 |
Update dede_archives set arcrank = -1,ismake=0; |
使用這兩條SQL語(yǔ)句之后,所有的文章文檔的狀態(tài)就變成了未審核了。不過(guò)會(huì)遇到一個(gè)問(wèn)題,有的是前臺(tái)動(dòng)態(tài)還可以訪問(wèn),后臺(tái)一鍵生成的時(shí)候居然還會(huì)生成,只是不會(huì)真正的生成文件。產(chǎn)生這種情況的原因是什么呢?其實(shí)是織夢(mèng)DedeCMS的微表和主表的狀態(tài)沒有統(tǒng)一。網(wǎng)上有一種比較死的辦法,是把文章刪除之后再恢復(fù)文章就解決了。
發(fā)菜工作室今天要說(shuō)的還是使用SQL語(yǔ)句解決這個(gè)問(wèn)題。都知道是微表的問(wèn)題了,只需要使用如下的SQL語(yǔ)句即可解決:
代碼如下 |
復(fù)制代碼 |
Update dede_arctiny set arcrank = -1; |
綜合一下,我們?cè)诎阉械奈恼略O(shè)置為未審核狀態(tài)的時(shí)候,一定要使用以下的SQL語(yǔ)句:
代碼如下 |
復(fù)制代碼 |
Update dede_archives set arcrank = -1,ismake=0 where 條件;
Update dede_arctiny set arcrank = -1 where 條件; |
這樣就把文章的主表、微表等等的信息都同步了。
最后發(fā)現(xiàn)是因?yàn)閐ede_archives與dede_arctiny表中有兩不統(tǒng)一導(dǎo)致的。
筆者這樣寫,在執(zhí)行sql頁(yè)面提交就可以執(zhí)行了:
Update dede_archives set arcrank = 0,ismake=0 where id>500;
Update dede_arctiny set arcrank = 0 where id>500;
OK, 關(guān)于dedecms生成靜態(tài)時(shí)列表頁(yè)面會(huì)顯示未審核的文章的問(wèn)題,今天就分享到這里了。關(guān)于企業(yè)建站、網(wǎng)絡(luò)推廣等問(wèn)題,歡迎向我們咨詢。