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.