function theme_image_formatter

Returns HTML for an image field formatter.

Parameters

$variables: An associative array containing:

  • item: Associative array of image data, which may include "uri", "alt", "width", "height", "title" and "attributes".
  • image_style: An optional image style.
  • path: An array containing the link 'path' and link 'options'.

Related topics

3 theme calls to theme_image_formatter()
ImageFieldDisplayTestCase::testImageFieldFormatterAttributes in modules/image/image.test
Test passing attributes into the image field formatters.
ImageThemeFunctionWebTestCase::testImageFormatterTheme in modules/image/image.test
Tests usage of the image field formatters.
image_field_formatter_view in modules/image/image.field.inc
Implements hook_field_formatter_view().

File

modules/image/image.field.inc, line 603

Code

function theme_image_formatter($variables) {
    $item = $variables['item'];
    $image = array(
        'path' => $item['uri'],
    );
    if (array_key_exists('alt', $item)) {
        $image['alt'] = $item['alt'];
    }
    if (isset($item['attributes'])) {
        $image['attributes'] = $item['attributes'];
    }
    if (isset($item['width']) && isset($item['height'])) {
        $image['width'] = $item['width'];
        $image['height'] = $item['height'];
    }
    // Do not output an empty 'title' attribute.
    if (isset($item['title']) && drupal_strlen($item['title']) > 0) {
        $image['title'] = $item['title'];
    }
    if ($variables['image_style']) {
        $image['style_name'] = $variables['image_style'];
        $output = theme('image_style', $image);
    }
    else {
        $output = theme('image', $image);
    }
    // The link path and link options are both optional, but for the options to be
    // processed, the link path must at least be an empty string.
    if (isset($variables['path']['path'])) {
        $path = $variables['path']['path'];
        $options = isset($variables['path']['options']) ? $variables['path']['options'] : array();
        // When displaying an image inside a link, the html option must be TRUE.
        $options['html'] = TRUE;
        $output = l($output, $path, $options);
    }
    return $output;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.