zoukankan      html  css  js  c++  java
  • dede织梦技巧:教你彻底解决dede按权重排序的问题(转)

    dede排序对网站来说一直存在问题,默认是按照最新发布时间排序。这样排序有个问题,一旦更新之后即被视为最新发布,于是原本做好的排序瞬间就乱了。
    这种时候,按权重排序是个很好的选择,但按权重排序到处存在BUG~。很多地方都缺少设置,要么是设定后完全不起作用,在百度和论坛找了很多帖子,都没能完全解决问题。在做第二个网站的时候,终于把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,找到以下代码:
    <td height="28" align="left">排列顺序:
             <select name="orderby" id="orderby" style="120">
    在代码下方插入以下代码,保存:
    <option value="weight">权重值</option>
    3、打开/dede/templets/freelist_edit.htm,找到以下代码:
    <?php
           echo "<option value="$orderby" selected>{$sortarrs[$orderby]}</option> ";
    ?>
    在代码下方插入以下代码,保存:
    <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,找到以下说明文字:
    //功能:增加按好评数和差评数调用
    替换为以下代码并保存:
    else if($orderby == 'weight') $ordersql = "  ORDER BY arc.weight asc";
    //功能:增加按好评数和差评数调用



    修改这5个文件,即能解决权重排序的问题(根据权重从小到大排列),并使得自由列表中,也可以采用权重排序的方式生成列表。
    调用例子:
    {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}
  • 相关阅读:
    阿里巴巴2018秋招面经之前端岗(1~5面)
    面试分享:2018阿里巴巴前端面试总结(题目+答案 30题)
    2018年各大互联网前端面试题三(阿里)
    阿里巴巴2016前端工程师面试题
    2016 阿里校招笔试前端题目,你还记得吗?
    2018阿里前端校招分享(笔试篇)
    2017 阿里校招前端笔试题小结
    阿里2018校招编程题
    ko.js学习一
    简单的3d变换
  • 原文地址:https://www.cnblogs.com/zhang36/p/6164894.html
Copyright © 2011-2022 走看看