新建立了一個獨(dú)立模型,可是突然發(fā)現(xiàn)模型列表中標(biāo)題不能顯示了,仔細(xì)分析發(fā)現(xiàn)并非完全不能顯示,而是凡是帶有中文的就不能顯示。
然后一步一步分析,發(fā)現(xiàn)dede在顯示獨(dú)立模型文章列表時對獨(dú)立模型的每一個字段都經(jīng)過了ChannelUnit->MakeField方法的處理,原因是獨(dú)立模型文章表中,凡是聯(lián)動類型字段都保存的是數(shù)值,因此,需要將其轉(zhuǎn)換成對應(yīng)的名稱,除此之外還進(jìn)行了一些其他類型字段的處理。其中包括對于type是text的字段,那dedecms 會經(jīng)過 HtmlReplace()方法進(jìn)行處理。
function MakeField($fname, $fvalue, $addvalue='') { //處理各種數(shù)據(jù)類型 $ftype = $this->ChannelFields[$fname]['type']; if($fvalue=='') { if($ftype != 'checkbox') $fvalue = $this->ChannelFields[$fname]['default']; } if($ftype=='text') { $fvalue = HtmlReplace($fvalue); } ...... |
問題就出在HtmlReplace方法中。某些時候HtmlReplace的中文轉(zhuǎn)換是有問題的。
(>=DedeCMS 5.5)
函數(shù)名:HtmlReplace
功能:去除html中不規(guī)則內(nèi)容字符
參數(shù):
$str='' 需要處理的字符串
$rptype=0 返回類型
$rptype = 0 表示僅替換 html標(biāo)記
$rptype = 1 表示替換 html標(biāo)記同時去除連續(xù)空白字符
$rptype = 2 表示替換 html標(biāo)記同時去除所有空白字符
$rptype = -1 表示僅替換 html危險的標(biāo)記
返回值:
格式化后的字符串
注:其實(shí)貌似HtmlReplace出現(xiàn)問題與否跟php的版本是有關(guān)系的,最新的php版本好像會出問題,但也有可能是配置的問題。
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: dede自定義模型的部分字段無法讀取