修改織夢(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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM