Drupal 7 新增「更新日期」資訊於文章頁面

自從本站於數年前利用 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 所提供的介面翻譯功能,為該字串提供中文版本後便大功告成。

 

分類: