校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 網站建設 > 建站知識 > 織夢的文章列表按權重排序

織夢的文章列表按權重排序

POST TIME:2017-11-30 22:26

DEDECMS(織夢)5.6系統支持文檔權重weight排序,可以在模板中使用:

{dede:arclistrow='10'titlelen='50'orderby='weight'}?[field:textlink/]<br/>{/dede:arclist}

其中的orderby=’weight’就實現了文檔按照權重排序了。這是arclist標簽,可以用在任何位置來調用文檔列表,然而,在欄目列表頁,如果你要使用list標簽(實現文檔列表分頁),也想用權重(weight)排序,

{dede:listpagesize='10'titlelen='50'orderby='weight'}?[field:textlink/]<br/>{/dede:list}

你 會發現,你的列表并沒有按照權重(weight)排序,無論你怎么修改,它的順序就還是老樣子!經過多次測試,發現原來dedecms織夢對權 重weight排序的支持僅arclist標簽,并不支持list標簽,因此,就開始了對dedecms織夢系統的改造,讓它支持list標簽權 重weight排序,改造的文件主要是include目錄下的arc.listview.class.php文件,打開文件,查找 “elseif($orderby==”lastpost”){”語句,大概在726行,在此行前面按下回車健,插入如下語句:

elseif($orderby=="weight"){$ordersql="orderbyarc.weight$orderWay";}

成為這樣:

//排序方式
$ordersql='';
if($orderby=="senddate"||$orderby=="id"){
$ordersql="orderbyarc.id$orderWay";
}
elseif($orderby=="hot"||$orderby=="click"){
$ordersql="orderbyarc.click$orderWay";
}
elseif($orderby=="lastpost"){
$ordersql="orderbyarc.lastpost$orderWay";
}
elseif($orderby=="weight"){
$ordersql="orderbyarc.weight$orderWay";
}
else{
$ordersql="orderbyarc.sortrank$orderWay";
}

繼續查找:

if(ereg('hot|click|lastpost',$orderby))

語句,修改為:

if(ereg('hot|click|weight|lastpost',$orderby))

修改完成后,保存,如果目標里面已經使用了weight排序,生成一下,就可以看到,文檔列表已經安裝weight排序
后記:進行了上面的修改,可以實現按照權重weight排序,但是,如果不在模板中寫明orderway=”asc”,無法實現權重越小越靠前,

解決方案1:

{dede:listpagesize='10'orderby='weight'orderway='asc'}?[field:textlink/]<br/>{/dede:list}

要實現越重越大越靠前,只需要將上述代碼中的“orderway=’asc’”去掉就可以了。
究其深層原因,是arc.listview.class.php文件中,693行:

$imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$innertext="",$tablewidth="100",$ismake=1,$orderWay='desc')

默認排序方式是降序排列,而非升序,考慮其它常用排序,如puddate等,此處不要修改的好。



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 凌云县| 海盐县| 武宣县| 香格里拉县| 南京市| 鞍山市| 泸溪县| 沁源县| 黔南| 徐州市| 定州市| 当阳市| 灌南县| 曲水县| 霍山县| 城口县| 延川县| 黄浦区| 台中县| 榆中县| 新龙县| 习水县| 黄冈市| 合肥市| 绥化市| 苍梧县| 阳城县| 嘉黎县| 廉江市| 贺州市| 宁阳县| 五指山市| 青岛市| 南昌县| 两当县| 德化县| 即墨市| 云霄县| 册亨县| 珠海市| 五河县|