POST TIME:2017-11-30 22:26
DEDECMS(織夢(mèng))5.6系統(tǒng)支持文檔權(quán)重weight排序,可以在模板中使用:
{dede:arclistrow='10'titlelen='50'orderby='weight'}?[field:textlink/]<br/>{/dede:arclist}其中的orderby=’weight’就實(shí)現(xiàn)了文檔按照權(quán)重排序了。這是arclist標(biāo)簽,可以用在任何位置來(lái)調(diào)用文檔列表,然而,在欄目列表頁(yè),如果你要使用list標(biāo)簽(實(shí)現(xiàn)文檔列表分頁(yè)),也想用權(quán)重(weight)排序,
{dede:listpagesize='10'titlelen='50'orderby='weight'}?[field:textlink/]<br/>{/dede:list}你 會(huì)發(fā)現(xiàn),你的列表并沒有按照權(quán)重(weight)排序,無(wú)論你怎么修改,它的順序就還是老樣子!經(jīng)過多次測(cè)試,發(fā)現(xiàn)原來(lái)dedecms織夢(mèng)對(duì)權(quán) 重weight排序的支持僅arclist標(biāo)簽,并不支持list標(biāo)簽,因此,就開始了對(duì)dedecms織夢(mèng)系統(tǒng)的改造,讓它支持list標(biāo)簽權(quán) 重weight排序,改造的文件主要是include目錄下的arc.listview.class.php文件,打開文件,查找 “elseif($orderby==”lastpost”){”語(yǔ)句,大概在726行,在此行前面按下回車健,插入如下語(yǔ)句:
elseif($orderby=="weight"){$ordersql="orderbyarc.weight$orderWay";}成為這樣:
//排序方式繼續(xù)查找:
if(ereg('hot|click|lastpost',$orderby))語(yǔ)句,修改為:
if(ereg('hot|click|weight|lastpost',$orderby))
修改完成后,保存,如果目標(biāo)里面已經(jīng)使用了weight排序,生成一下,就可以看到,文檔列表已經(jīng)安裝weight排序
后記:進(jìn)行了上面的修改,可以實(shí)現(xiàn)按照權(quán)重weight排序,但是,如果不在模板中寫明orderway=”asc”,無(wú)法實(shí)現(xiàn)權(quán)重越小越靠前,
解決方案1:
{dede:listpagesize='10'orderby='weight'orderway='asc'}?[field:textlink/]<br/>{/dede:list}
要實(shí)現(xiàn)越重越大越靠前,只需要將上述代碼中的“orderway=’asc’”去掉就可以了。
究其深層原因,是arc.listview.class.php文件中,693行:
默認(rèn)排序方式是降序排列,而非升序,考慮其它常用排序,如puddate等,此處不要修改的好。