web-dev-qa-db-ja.com

Privatemsgモジュールとカスタムタイムスタンプ

デフォルトでは Privatemsg モジュールには、メッセージが送信されたさまざまな長さの3つのタイムスタンプ表示があります。ある時点の後、リストされた「時間」が変化します。

私がしたいのは、現在のタイムスタンプの最後に次のタイムスタンプを追加することです。このように、時間の経過に伴って投稿された分と日付の詳細が残ります。

例:24時間後、「10月8日」とだけ表示するのではなく、「10月8日12:45」と1年後に「2014年10月8日12:45」と表示します

タイムスタンプが出力されているモジュールでコードを見つけたと思いますが、それに追加する方法がわかりません。

function privatemsg_date_formats() {
  $formats = array('g:i a', 'H:i', 'M j', 'j M', 'm/d/y', 'd/m/y', 'j/n/y', 'n/j/y');
  $types = array_keys(privatemsg_date_format_types());
  $date_formats = array();
  foreach ($types as $type) {
    foreach ($formats as $format) {
      $date_formats[] = array(
        'type' => $type,
        'format' => $format,
        'locales' => array(),
      );
    }
  }
  return $date_formats;
}


function privatemsg_date_format_types() {
  return array(
    'privatemsg_current_day' => t('Privatemsg: Current day'),
    'privatemsg_current_year' => t('Privatemsg: Current year'),
    'privatemsg_years' => t('Privatemsg: Other years'),
  );
}


function privatemsg_format_date($timestamp) {
  if ($timestamp > ((int)(REQUEST_TIME / 3600)) * 3600) {
    return t('@interval ago', array('@interval' => format_interval(abs(REQUEST_TIME - $timestamp), 1)));
  }
  if ($timestamp > ((int)(REQUEST_TIME / 86400)) * 86400) {
    return format_date($timestamp, 'privatemsg_current_day');
  }
  if ($timestamp > mktime(0, 0, 0, 1, 0, date('Y'))) {
    return format_date($timestamp, 'privatemsg_current_year');
  }
  return format_date($timestamp, 'privatemsg_years');
}
2
Anon Ymous

これら2つの日付形式を追加します(admin/config/regional/date-time/formats):

M d H:i

Y M d H:i

その後、上記で作成した日付形式を選択します(admin/config/regional/date-time)で

Privatemsg:現在の年Privatemsg:その他の年それぞれ。

3
Rupesh