You are here

function background_image_formatter_field_formatter_view in Simple Background image formatter 7

Implements hook_field_formatter_view().

File

./background_image_formatter.module, line 108

Code

function background_image_formatter_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  $settings = $display['settings'];
  if (!is_background_image_formatter_display_type($display)) {
    return $element;
  }
  foreach ($items as $delta => $item) {
    $image_url = file_create_url($item['uri']);
    if (!empty($settings['image_style'])) {
      $image_url = image_style_url($settings['image_style'], $item['uri']);
    }
    $selector = $settings['background_image_selector'];
    if (module_exists('token')) {
      $tokens_mapping = array_flip(token_get_entity_mapping());
      $selector = token_replace($selector, array(
        $tokens_mapping[$entity_type] => $entity,
      ));
    }
    $theme_data = array(
      'background_image_selector' => strip_tags($selector),
      'image_url' => $image_url,
    );
    switch ($settings['background_image_output_type']) {
      case 'css':
        theme('background_image_formatter_css', $theme_data);
        break;
      case 'inline':
        $element[$delta]['#markup'] = theme('background_image_formatter_inline', $theme_data);
        break;
    }
  }
  return $element;
}