You are here

function advanced_text_formatter_field_formatter_view in Advanced Text Formatter 7

Implements hook_field_formatter_view().

File

./advanced_text_formatter.module, line 335
Advanced Text Formatter

Code

function advanced_text_formatter_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  switch ($display['type']) {
    case 'advanced_text':
      $settings = $display['settings'];
      $token_data = array(
        $entity_type => $entity,
      );
      foreach ($items as $delta => $item) {
        if ($settings['use_summary'] && !empty($item['summary'])) {
          $output = $item['summary'];
        }
        else {
          $output = $item['value'];
        }
        if ($settings['token_replace']) {
          $output = token_replace($output, $token_data);
        }
        switch ($settings['filter']) {
          case 'drupal':
            $output = check_markup($output, $settings['format'], $langcode);
            break;
          case 'php':
            $output = filter_xss($output, $settings['allowed_html']);
            if ($settings['autop']) {
              $output = _filter_autop($output);
            }
            break;
          case 'input':
            $output = check_markup($output, $item['format'], $langcode);
            break;
        }
        if ($settings['trim_length'] > 0) {
          $options = array(
            'word_boundary' => $settings['word_boundary'],
            'max_length' => $settings['trim_length'],
            'ellipsis' => $settings['ellipsis'],
          );
          $output = advanced_text_formatter_trim_text($output, $options);
        }
        $element[$delta] = array(
          '#markup' => $output,
        );
      }
      break;
  }
  return $element;
}