dedecms文章列表排序改为权重排

dedecms文章列表默认是按发布最新的文章列表排放,但是有的客户可能会强制要求你,要按他的意思去做。所以方法总结如下:

首先找到修改文件:/ include / arc.listview.class.php

第一步,搜索查找:hot|click|lastpost    大概在 776行,
 if(preg_match('/hot|click|lastpost/', $orderby))
修改为:
if(ereg('hot|click|weight|lastpost',$orderby))

第2步,
查找:排序方式,

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

修改为:
    //排序方式
        $ordersql = '';
        if($orderby=="senddate" || $orderby=="id") {
            $ordersql=" ORDER BY arc.id $orderWay";
        }
        else if($orderby=="hot" || $orderby=="click") {
            $ordersql = " ORDER BY arc.click $orderWay";
        }
        else if($orderby=="lastpost") {
            $ordersql = "  ORDER BY arc.lastpost $orderWay";
        }
        else if($orderby == 'weight') $ordersql = " order by arc.weight asc";
        else {
            $ordersql=" ORDER BY arc.sortrank $orderWay";
        }




打开\include\taglib\arclist.lib.php
找到
else if($orderby == 'weight') $ordersql = "  order by arc.weight asc";//如果没有特定设置排序则按照权重先排序
改为
else if($orderby == 'weight') $ordersql = "  order by arc.weight $orderWay , arc.sortrank $orderWay";//如果没有特定设置排序则按照权重先排序,如果权重相等,则按照发布时间降序排列

 

第3步,
在列表模板中调用,
{dede:list titlelen=24 typeid=13 row=12 pagesize='12' orderby='weight' type='image.' imgwidth='150' imgheight='120'}
        <li><a href="[field:arcurl/]">[field:image/]<span class="">[field:title/]</span></a></li>{/dede:list}

重点是加:orderby='weight'


第4步,
最后的工作,后台管理,点生成,点 更新栏目,刷新栏目可看到你想要的结果。

上一篇:没有了

下一篇:没有了

返回