移至主內容
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 新增「更新日期」資訊於文章頁面

發表日期:星期一, 02/08/2016 - 11:45,更新日期:星期一, 02/03/2025 - 20:05

自從本站於數年前利用 Drupal 7 重新建置後,DR 便偶爾會意識到一個問題,但過去一直都沒有動手處理。這個問題就是文章頁面僅會顯示起初的發表日期,而沒有包含後來的更新日期,並且管理介面也沒有提供這方面的設定功能。

 

雖然文章起初的發表日期是可以輕易重設的,也就是說,發表日期經覆寫後也可以等同於文章最後的更新日期。然而 DR 卻認為同時顯示發表日期與更新日期仍是有其意義的,尤其對於技術性的文章而言,發表日期可以透露出該主題之所以存在的時間背景,至於更新日期則可以反應出,文章的內容並不一定是過時的,而是有可能是與時俱進的(不過,也有可能只是純粹訂正錯字而已)。

 

於是最近 DR 終於卯起來解決了這個問題,循線找了一下,決定修改 modules/node/node.module 這支檔案裡的 template_preprocess_node() 函式,首先新增一個自訂變數:

$variables['updated_date'] = format_date($node->changed);

 

接著將發表資訊的部份改為條件式的處理,如果文章的建立日期不同於修改日期,便套用另一段稍加修改的字串內容:

if ($variables['date'] == $variables['updated_date']) {
   $variables['submitted'] =
   t('Submitted by !username on !datetime',
   array('!username' => $variables['name'],
   '!datetime' => $variables['date']));
   }
else {
   $variables['submitted'] = 
   t('Submitted by !username on !datetime, updated on !updatedtime', 
   array('!username' => $variables['name'], 
   '!datetime' => $variables['date'],
   '!updatedtime' => $variables['updated_date']));
   }

 

最後,利用 Drupal 所提供的介面翻譯功能,為該字串提供中文版本後便大功告成。

 

筆記