function image_delta_formatter_field_formatter_view in Image Delta Formatter 7
Implements hook_field_formatter_view().
File
- ./
image_delta_formatter.module, line 118 - Provides an imagefield formatter that allows the user to specify which delta (or several deltas) should be displayed.
Code
function image_delta_formatter_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
// Check if the formatter involves a link.
if ($display['settings']['image_link'] == 'content') {
$uri = entity_uri($entity_type, $entity);
}
elseif ($display['settings']['image_link'] == 'file') {
$link_file = TRUE;
}
// Prepare an array of selected deltas from the entered string.
if (strpos($display['settings']['deltas'], ',')) {
$deltas = explode(',', $display['settings']['deltas']);
$deltas = array_map('trim', $deltas);
}
else {
$delta = trim($display['settings']['deltas']);
$deltas = array(
$delta,
);
}
// Reverse the items if needed.
if ($display['settings']['deltas_reversed']) {
$items = array_reverse($items);
}
foreach ($items as $delta => $item) {
// Skip deltas that weren't selected for display.
if (!in_array($delta, $deltas)) {
continue;
}
if (isset($link_file)) {
$uri = array(
'path' => file_create_url($item['uri']),
'options' => array(),
);
}
$element[$delta] = array(
'#theme' => 'image_formatter',
'#item' => $item,
'#image_style' => $display['settings']['image_style'],
'#path' => isset($uri) ? $uri : '',
);
}
return $element;
}