zoukankan      html  css  js  c++  java
  • 修改织梦(DEDE)的上一篇下一篇功能

      

      近,帮朋友修改织梦(DEDE)的一些内容。目前最新版本DEDE 5.7版,仍然存在很多的bug或者不尽人意的地方。

    比如文章的更新时间问题,后台中的文章的高级参数不会自动加载更新时间。而且,上一篇下一篇的功能是根据ID

    来进行排序的,如果列表中根据更新时间排序,那么上一篇下一篇和列表中的顺序就会不同步。

      下面我们来改下DEDE的上一篇下一篇的方法,使其可以按照更新日期排序(注意这不是分页的上一页下一页)。

      前台页面调用方法:

      <div class="context">
           <ul>
              <li>{dede:prenext get='pre'/}</li>
              <li>{dede:prenext get='next'/}</li>
           </ul>
          </div>

      修改步骤:

        第一步:用记事本或者php的IDE打开 DedeAMPZ\WebRoot\Default\include 目录下的arc.archives.class.php 文件。

        第二步:找到 function GetPreNext($gtype='') 方法。

        第三步:将

              $preR =  $this->dsql->GetOne("Select id From `#@__arctiny` where id<$aid And arcrank>-1 And typeid='{$this->Fields['typeid']}' order by id desc");
                           $nextR = $this->dsql->GetOne("Select id From `#@__arctiny` where id>$aid And arcrank>-1 And typeid='{$this->Fields['typeid']}' order by id asc");

                   替换成以下代码

            $preR =  $this->dsql->GetOne("Select id From `#@__arctiny` where sortrank<'{$this->Fields['pubdate']}' And arcrank>-1 And typeid='{$this->Fields['typeid']}' order by sortrank desc");
                     $nextR = $this->dsql->GetOne("Select id From `#@__arctiny` where sortrank>'{$this->Fields['pubdate']}' And arcrank>-1 And typeid='{$this->Fields['typeid']}' order by sortrank asc");

        第四步:OK了,大功告成,生成下试试吧~0~

      说明:这里主要是更改了下SQL语句,把按照id判断排序的语句改成了dede_arctiny表中的sortrank,这里的sortrank和dede_archives表中的pubdate的值是一样的。每当更新文章时,会同步更新两张表中的pubdate和sortrank。

      我的博客:www.andysue.com

  • 相关阅读:
    简单网络问题排查记录一
    安装mysql_sniffer报错undefined reference to symbol 'pthread_setspecific@@GLIBC_2.2.5'问题
    tengine安装ngx_http_lua_module
    Django——URL详解/Django中URL是如何与urls文件匹配的
    Python学习——enumerate
    Python学习——装饰器/decorator/语法糖
    缓存优化
    页面重绘 回流及其优化
    window.getComputedStyle()方法的使用及其扩展
    java 三个循环的优缺点
  • 原文地址:https://www.cnblogs.com/andysue/p/3022405.html
Copyright © 2011-2022 走看看