zoukankan      html  css  js  c++  java
  • dede文章列表根据权重自定义排序

    首先在这里说明一下,网上搜索织梦文章列表自定义的方式无非有以下几种:

      1、修改配置文件,新增一个orderid字段,想法很好,但是!但是!!!可能是早期版本的缘故,不适合现在的v5.7系统!按照网上说的办法修改配置文件根本就不对!希望织梦的刚入门的人见到引以为戒,不要是个方法自己连试都没试就转到自己的博客中,第二种是修改文章编辑页的文章排序,自定义置顶方法,虽说看起来不错,但是!如果你只想要更换其中几个的位置,难道还要全部重新点一遍吗?第三种是如下我引用的,也是扒的别人的成果,但是自己亲测可用。本人用的dede V5.7。用的dede:list排序方式的,亲测可用!!!

    用织梦建站时候我们遇到某几篇文章按照自己的意思排列顺序,就要用到按权重排序,下面介绍织梦dedecms的dede:list和dede:arclist列表按权重排序修改方法。

    倒序 orderway='asc'

    orderway是设置排序的方式,值为desc和asc

    dedecms列表页实现文档按权重weight排序

    1,在list_artcile.htm模板中使用

    {dede:list pagesize='12′ orderby='weight' orderway='desc'}

    2,然后修改include目录下的arc.listview.class.php

    查找else if($orderby=="lastpost") { $ordersql = "  ORDER BY arc.lastpost $orderWay";} , dedecms5.7sp2大概在768行

    在下面补充

    else if($orderby=="weight") { $ordersql = " order by arc.weight $orderWay"; }

    3,同样是这个文件,

    查找“if(preg_match('/hot|click|lastpost/', $orderby))”

    改为:

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

    上面三个步骤,即可实现列表页内容按权重排序,越小越靠前。仅限dedecms v5.7 SP2测试!

    dede:arclist按权重排序的修改方法

    1、在织梦系统中找到以下目录include aglib中的arclist.lib.php文件并打开

    大约在74 、75行找到:

    // arclist是否需要weight排序,默认为"N",如果需要排序则设置为"Y"

    $isweight = $ctag->GetAtt('isweight');

    把这行修改为:

    $weight = $ctag->GetAtt('weight');

    或者修改了 170行 $isweight='N' 的值为Y

    大约在327行找到,并修改

    //文档排序的方式

    $ordersql = '';

    if($orderby=='hot' || $orderby=='click') $ordersql = " ORDER BY arc.click $orderWay";

    else if($orderby == 'sortrank' || $orderby=='pubdate') $ordersql = " ORDER BY arc.sortrank $orderWay";

    else if($orderby == 'id') $ordersql = "  ORDER BY arc.id $orderWay";

    else if($orderby == 'near') $ordersql = " ORDER BY ABS(arc.id - ".$arcid.")";

    else if($orderby == 'lastpost') $ordersql = "  ORDER BY arc.lastpost $orderWay";

    else if($orderby == 'scores') $ordersql = "  ORDER BY arc.scores $orderWay";

    下添加

    else if($orderby == 'weight') $ordersql = "  order by arc.weight $orderWay";   //主要是这一句,应该是这一句就够了,需要修改的小伙伴,试一下只改这里

    调用方法:orderby='weight'  orderway='desc'   //desc和asc

  • 相关阅读:
    61. 最长不含重复字符的子字符串
    60. 礼物的最大价值 (未理解)
    59. 把数字翻译成字符串
    58. 把数组排成最小的数
    57. 数字序列中某一位的数字 (不懂)
    spring data jpa 官方文档
    idea 编译报错 源发行版 1.8 需要目标发行版 1.8
    idea maven 依赖报错 invalid classes root
    solr
    spring boot 官方文档
  • 原文地址:https://www.cnblogs.com/dayin1/p/11197388.html
Copyright © 2011-2022 走看看