移至主內容
DarkRanger's Secret Area

主導覽

  • 首頁
  • 關於本站
  • Linux
  • 程式開發
  • N900
  • 譯文
  • 資訊技術辭典

文章分類

  • 影劇
  • 遊戲
  • 筆記
  • 雜文
  • 資訊技術
  • 站務訊息

最新內容

  • How-To:Linux 安裝 DevilutionX
  • 於 2012 年建立的一份音樂播放清單
  • How-To:Linux 安裝 Medal of Honor: Allied Assault
  • Fallout 4 (2015)
  • How-To:Linux 安裝 Blood
  • 《終極動員令》系列早期作品原始碼釋出
  • How-To:Linux 安裝 Doom 3
  • Nausicaä of the Valley of the Wind (1984)
  • Intel 內顯與 Linux 桌面死當問題排解
  • 《哥吉拉 -1.0》心得補遺

Drupal 7 修改「最新內容」區塊的文章排序

發表日期:星期二, 07/02/2013 - 22:21,更新日期:星期六, 05/17/2014 - 21:28

今天 DR 心血來潮,終於改掉了網站上一個自己覺得不太順眼的小問題,那就是左側的「最新內容」區塊預設是以修改日期來排序的,而這會有什麼問題呢?問題在於如果 DR 在過去的文章裡改錯字、或者大砍錯誤內容……那麼其文章排序就會跟主區塊不一致,因為主區塊是以文章的建立日期來排序的。這個問題不大,但多看幾眼就會覺得還是把兩個區塊都按照建立日期來排序會比較好。

 

Drupal 7 本身的管理介面並沒有提供這方面的設定,所以只能直接改程式碼。由於 DR 不諳 PHP,因此整個的研究和解決流程算是很懶人,先簡單用肉眼判斷相關程式碼應該是在 node 模組裡,接著對 node 的程式碼搜尋關鍵字,最後直接改改看就改好了……

 

其實 Drupal 有提供完整的線上 API 文件,所以想認真處理問題的人可以不用像 DR 這樣搞。至於實際修改的位置,就在 modules/node/node.module 這個檔案裡,找到 node_get_recent() 這支函式,將裡頭的「n.changed」註解掉換成「n.created」即可:

  $nids = $query
    ->fields('n', array('nid'))
    //->orderBy('n.changed', 'DESC')
    ->orderBy('n.created', 'DESC')
    ->range(0, $number)
    ->addTag('node_access')
    ->execute()
    ->fetchCol();

 

筆記