花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來到素材無憂網(wǎng),按 + 收藏我們
登錄 注冊(cè) 退出 找回密碼

關(guān)于dedecms文章處理類Archives中的body字段

時(shí)間: 2018-12-14 09:09 閱讀: 作者:素材無憂網(wǎng)

我們知道/include/arc.archives.class.php文件是處理文章信息的,在文章詳情頁(yè)面的模版文件中那些dede標(biāo)簽的顯示數(shù)據(jù)就是來源于此,這篇文章中主要討論body字段。

前面我已經(jīng)寫了一篇如何為文章顯示提供一個(gè)安卓客戶端接口的文章 ,其中就需要對(duì)顯示在android客戶端上的文章內(nèi)容做一些處理,需要將原本問相對(duì)路徑的url全部替換成帶域名的絕對(duì)路徑。

我自己寫了一個(gè)實(shí)現(xiàn)替換url的函數(shù)放在archive.helper.php中,于是我在arc.archives.class.php中自認(rèn)為合適的地方調(diào)用了替換body  url連接的方法,結(jié)果發(fā)現(xiàn)根本不行,得到的body是為空的。
經(jīng)過分析發(fā)現(xiàn)在archives類的構(gòu)造函數(shù)調(diào)用之后立即處理body是沒有用的,因?yàn)閍rchives類的構(gòu)造方法中,獲取的都是文章主表的信息,里面沒有body的內(nèi)容,body存在于文章附表中。而附表字段的獲取在這個(gè)函數(shù)中:

function ParAddTable()

因此我要修改$this->Fields['body']的值,必須在這個(gè)函數(shù)之后。 ParAddTable()是在display()中被調(diào)用的,所以我只能在display()中做處理了。

事實(shí)上這仍然行不通,正確的做法是在ParAddTable()中的  “//處理要分頁(yè)顯示的字段” 代碼之前。

不過下面幾行代碼如果弄清楚了的話 會(huì)有所幫助:

$this->SplitFields = explode("#a#",$this->Fields[$this->SplitPageField]);

通過打印,發(fā)現(xiàn)$this->SplitPageField的值就是body,那么$this->SplitFields 就是body字段的分段數(shù)組了,其中#a#的a實(shí)際上是p,但是如果我這樣寫后面文字的就顯示不出來了。

其實(shí)之所以前面修改了$this->Fields['body']的值在最終顯示中不能體現(xiàn),是因?yàn)槟0逯袥]有調(diào)用$this->Fields['body']而是調(diào)用的$this->SplitFields,如果沒有文章分頁(yè),那么$this->SplitFields中只有一個(gè)元素。能影響到$this->SplitFields結(jié)果的代碼只能在ParAddTable()函數(shù)自身中。

版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!

轉(zhuǎn)載請(qǐng)注明: 關(guān)于dedecms文章處理類Archives中的body字段

標(biāo)簽:  
相關(guān)文章
模板推薦