1 date.tokens.inc date_token_info_alter(&$info)

Implements hook_token_info_alter().

File

core/modules/date/date.tokens.inc, line 37
Token module integration.

Code

function date_token_info_alter(&$info) {
  // Attach date field tokens to their respective entity tokens.
  $field_info = field_info_fields();
  $fields = _field_token_info();

  foreach ($fields as $field_name => $field) {
    if (in_array($field_info[$field_name]['type'], array(
      'date',
      'datetime',
      'datestamp',
    ))) {
      foreach (array_keys($field['bundles']) as $token_type) {
        // If a token already exists for this field, then don't add it.
        if (isset($info['tokens'][$token_type][$field_name])) {
          continue;
        }

        // Ensure token type for this entity already exists.
        if (!isset($info['types'][$token_type]) || !isset($info['tokens'][$token_type])) {
          continue;
        }

        $info['tokens'][$token_type][$field_name] = array(
          // Note that label and description have already been
          // sanitized by _field_token_info().
          'name' => $field['label'],
          'description' => $field['description'],
          'module' => 'date',
          'type' => 'date-field-value',
        );

        if ($field_info[$field_name]['cardinality'] != 1) {
          $info['tokens'][$token_type][$field_name]['dynamic'] = TRUE;
          $info['tokens'][$token_type][$field_name]['description'] .= ' ' . t('Replace the ? with the delta for multi-value fields.');
        }

        if (empty($field_info[$field_name]['settings']['todate'])) {
          $info['tokens'][$token_type][$field_name]['type'] = 'date';
        }
      }
    }
  }
}