Пользовательские форматы дат в электронных письмах веб-формы


У меня есть веб-форма, которая отправляет электронное письмо. В веб-форме есть поле даты, и мне нужно отформатировать это поле даты.

Я пробовал:

[submission:values:date_field:CUSTOM_FORMAT]
[submission:values:date_field:long]
[submission:values:date_field:value:custom:d-M-y]

Оба результата приводят к пустой дате.

Как я могу отформатировать дату в электронной почте веб-формы, используя формат даты не по умолчанию (который, по-видимому, short)?

Author: Scott Joudry, 2015-11-18

1 answers

Мне пришлось создать пользовательскую функцию hook_tokens:

/**
 * Implementation of hook_tokens().
 */
function MODULE_tokens($type, $tokens, array $data = array(), array $options = array()) {
  $replacements = array();
  if ($type == 'submission' && !empty($data['webform-submission'])) {
    $node = isset($data['node']) ? $data['node'] : node_load($submission->nid);

    foreach ($tokens as $name => $original) {
      switch ($name) {
        case 'values:date_field:custom_format':
          foreach ($node->webform['components'] as $cid => $component) {
            if ($component['form_key'] == 'date_field') {
              $replacements[$original] = format_date(strtotime($data['webform-submission']->data[$cid][0]), 'custom_format');
            }
          }
          break;
      }
    }
  }

  return $replacements;
}
 1
Author: Scott Joudry, 2015-11-18 18:07:36