You are here

function token_field_field in Token Field 6

Implementation of hook_field().

File

./token_field.module, line 86
Optional extension to CCK (Content Construction Kit) to provide a read-only field which allows embedding of "compound" fields using Tokens.

Code

function token_field_field($op, &$node, $field, &$items, $teaser, $page) {
  switch ($op) {
    case 'load':

      // Get the template from the field and overly the defaults
      $item = $field['template'] + array(
        'body' => '',
        'format' => FILTER_FORMAT_DEFAULT,
        'parse_as_php' => FALSE,
      );
      return array(
        $field['field_name'] => array(
          $item,
        ),
      );
    case 'sanitize':

      // Define the available token types
      $types = array(
        'global' => NULL,
        'node' => $node,
      );

      // For each item, parse the token filtered content as markup
      // There will usually only ever be 1 item
      foreach ($items as $delta => $item) {

        // Parse as PHP first, if set
        if ($item['parse_as_php']) {
          token_field_parse_as_php($item['body'], $node, $field, $items, $teaser, $page, $delta);
        }

        // Parse the body for tokens
        $body_token_filtered = token_replace_multiple($item['body'], $types);

        // Check the parsed token body against the defined input format
        $items[$delta]['safe'] = check_markup($body_token_filtered, $item['format'], FALSE);
      }
      break;
  }
}