前两天有个客户想让首页的产品根据自己的需求进行排序,登陆后台我先选择了推荐功能,但是产品还是按照默认的更新时间进行排序了。期间如果修改了网站的内容,更新时间就会改变,那么顺序又变了。所以这么设置是不行的。
 
    织梦系统排序对网站来说一直存在问题,默认是按照最新发布时间排序。这样排序有个问题,一旦更新之后即被视为最新发布,于是原本做好的排序瞬间就乱了。
 
    这种时候,按权重排序是个很好的选择,但按权重排序到处存在BUG~。很多地方都缺少设置,要么是设定后完全不起作用,在百度和论坛找了很多帖子,终于设置成功了。但是也是改了不少地方。今天青岛网站制作-微时微刻就说一下具体修改方法。以下就是设置方法,大家要严格按照这个方法进行设置哦。
 
要解决权重排序的问题,主要集中在以下几个文件上:
 
/include/arc.freelist.class.php   自由列表对应的文件
 
/dede/templets/freelist_edit.htm 新增自由列表对应的文件
 
/dede/templets/freelist_add.htm  修改自由列表对应的文件
 
/include/arc.listview.class.php   list列表对应的文件
 
/include/taglib/arclist.lib.php   arclist列表对应的文件
 
 
修改的内容很简单,按照以下步骤即可修正:
 
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,找到以下代码:
 
排列顺序:<select name="orderby" id="orderby" style="width:120">
在代码下方插入以下代码,保存:
<option value="weight">权重值</option>
 
3、打开/dede/templets/freelist_edit.htm,找到以下代码:
 
<?php echo "<option value=\"$orderby\" selected>{$sortarrs[$orderby]}</option>\r\n"; ?>
在代码下方插入以下代码,保存:
<option value="weight">权重值</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,找到以下说明文字:
 
大约在74 、75行找到:
 
//arclist是否需要weight排序,默认为"N",如果需要排序则设置为"Y"
    $isweight = $ctag->GetAtt('isweight');
把这行修改为:
    $weight = $ctag->GetAtt('weight');
 
大约在327行找到
 
else if($orderby == 'isweight') $ordersql = "  ORDER BY arc.isweight asc";
替换为以下代码并保存:
else if($orderby == 'weight') $ordersql = "  ORDER BY arc.weight asc";
 
     修改这5个文件,即能解决权重排序的问题(根据权重从小到大排列),并使得自由列表中,也可以采用权重排序的方式生成列表。
 
注意事项:后台不能修改内容权重解决办法
 
找到后台文件
dede/album_edit.php
152行到172行 加入 weight='$weight',
亲测是可以的。
 
调用例子:
 
{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}