public function ImageFormatter::viewElements

Implements \Drupal\field\Plugin\Type\Formatter\FormatterInterface::viewElements().

Overrides FormatterInterface::viewElements

File

drupal/core/modules/image/lib/Drupal/image/Plugin/field/formatter/ImageFormatter.php, line 96
Contains \Drupal\image\Plugin\field\formatter\ImageFormatter.

Class

ImageFormatter
Plugin implementation of the 'image' formatter.

Namespace

Drupal\image\Plugin\field\formatter

Code

public function viewElements(EntityInterface $entity, $langcode, array $items) {
  $elements = array();
  $image_link_setting = $this
    ->getSetting('image_link');

  // Check if the formatter involves a link.
  if ($image_link_setting == 'content') {
    $uri = $entity
      ->uri();
  }
  elseif ($image_link_setting == 'file') {
    $link_file = TRUE;
  }
  $image_style_setting = $this
    ->getSetting('image_style');
  foreach ($items as $delta => $item) {
    if (isset($link_file)) {
      $uri = array(
        'path' => file_create_url($item['uri']),
        'options' => array(),
      );
    }
    $elements[$delta] = array(
      '#theme' => 'image_formatter',
      '#item' => $item,
      '#image_style' => $image_style_setting,
      '#path' => isset($uri) ? $uri : '',
    );
  }
  return $elements;
}