織夢排序?qū)W(wǎng)站來說一直存在問題,默認(rèn)是按照最新發(fā)布時間排序。這樣排序有個問題,一旦更新之后即被視為最新發(fā)布,于是原本做好的排序瞬間就亂了。
這種時候,按權(quán)重排序是個很好的選擇,但按權(quán)重排序到處存在BUG~。
要解決權(quán)重排序的問題,主要集中在以下幾個文件上:
/include/arc.freelist.class.php 自由列表對應(yīng)的文件
/dede/templets/freelist_edit.htm 新增自由列表對應(yīng)的文件
/dede/templets/freelist_add.htm 修改自由列表對應(yīng)的文件
/include/arc.listview.class.php list列表對應(yīng)的文件
/include/taglib/arclist.lib.php arclist列表對應(yīng)的文件
修改的內(nèi)容很簡單,按照以下步驟即可修正:
1、打開/include/arc.freelist.class.php, 找到以下代碼:
else if($orderby=="rand")
{
$ordersql = " ORDER BY rand()";
}
在代碼下方插入以下代碼后保存:
else if($orderby=="weight")
{
$ordersql = " order by arc.weight asc";
}
2、打開/dede/templets/freelist_add.htm,找到以下代碼:
<td height="28" align="left">排列順序:
<select name="orderby" id="orderby" style="width:120">
在代碼下方插入以下代碼,保存:
<option value="weight">權(quán)重值</option>
3、打開/dede/templets/freelist_edit.htm,找到以下代碼:
<?php
echo "<option value=\"$orderby\" selected>{$sortarrs[$orderby]}</option>\r\n";
?>
在代碼下方插入以下代碼,保存:
<option value="weight">權(quán)重值</option>
4、打開/include/arc.listview.class.php,找到以下代碼:
else if($orderby=="lastpost")
{
$ordersql = " ORDER BY arc.lastpost $orderWay";
}
在代碼下方插入以下代碼:
else if($orderby=="weight")
{
$ordersql = " order by arc.weight asc";
}
找到以下代碼:
if(preg_match('/hot|click|lastpost|/', $orderby))
替換為以下代碼并保存:
if(preg_match('/hot|click|lastpost|weight/', $orderby))
5、打開/include/taglib/arclist.lib.php,找到以下說明文字:
//功能:增加按好評數(shù)和差評數(shù)調(diào)用
替換為以下代碼并保存:
else if($orderby == 'weight') $ordersql = " ORDER BY arc.weight asc";
//功能:增加按好評數(shù)和差評數(shù)調(diào)用
修改這5個文件,即能解決權(quán)重排序的問題(根據(jù)權(quán)重從小到大排列),并使得自由列表中,也可以采用權(quán)重排序的方式生成列表。
調(diào)用例子:
{dede:arclist flag='a' limit='0,1' typeid='10' isweight='y' orderby='weight'}
<a href="/z/al/index_12_1.html" target="_blank">
<img src="[field:picname/]" width="300" height="168" alt="[field:shorttitle/]" style="border:1px solid "></a>
{/dede:arclist}
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 徹底解決織夢按權(quán)重排序的問題