Показване последна промяна на нода

В следствие на възможността за редакция на нода смятам, че вместо submitted е по-удачно да се показва датата на последната редакция. Това лесно се реализира със слeдния код:

//change submitted
$variables['submitted'] = t('Updated on @date by !author_link', array('@date' => $date, '!author_link' => l(format_username($account), 'user/' . $variables['uid'])));

За линк към автора ще го разширим до следното и всичко това добавяме към hook_preproccess_node() в template.php на текущата темата:

/**
 * Implementation of hook_node_view().
 */
function THEME_preprocess_node(&$variables) {
  //change submitted date with updatted if node is updated
  if ($variables['display_submitted'] == TRUE) {
    if ($variables['changed'] > $variables['created']) {
      $account = user_load($variables['uid']);
      $date = format_date($variables['created'], $type = 'product_display_date', $format = '', $timezone = NULL, $langcode = NULL);
      $variables['submitted'] = t('Updated on @date by !author_link', array('@date' => $date, '!author_link' => l(format_username($account), 'user/' . $variables['uid'])));
    }
  }
}

За да използваме дефинирани формати за дата като product_display_date те трябва да са създадени. Това става от admin/config/regional/date-time/formats/add като добавим желания изглед на датата например d.m.Y H:i което дава дата във вида 19.08.2012 14:57. След което от admin/config/regional/date-time създаваме нов тип дата с име Product display date и избираме формата, създаден в предната стъпка. В случай, че искаме друг формат на датата или друго нименование на формата следва да го направим в горните две стъпки - от това зависи какво ще напишем в частта $type = 'product_display_date': в този случай съм го правил за commerce Product display - от там и това име на формата.

Category: