function auto_image_style_field_formatter_view in Auto image style 7
Implements hook_field_formatter_view().
File
- ./
auto_image_style.module, line 172
Code
function auto_image_style_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
if (empty($items)) {
return array();
}
$element = array();
$settings = $display['settings'];
$link_to_file = FALSE;
$link_to_link = FALSE;
// 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_to_file = TRUE;
}
elseif (isset($entity->{$display['settings']['image_link']})) {
$link_to_link = TRUE;
$link_to_link_values = field_get_items($entity_type, $entity, $display['settings']['image_link'], $langcode);
}
//all image styles
$image_styles = image_styles();
foreach ($items as $delta => $item) {
// link to image file
if ($link_to_file) {
$uri = array(
'path' => file_create_url($item['uri']),
'options' => array(),
);
}
// link module integration
if ($link_to_link && isset($link_to_link_values[$delta])) {
$uri = array(
'path' => $link_to_link_values[$delta]['url'],
'options' => array(),
);
}
// landscape image
if ($item['height'] < $item['width']) {
$image_style = $settings['image_style_landscape'];
$item['attributes']['class'] = array(
'auto_image_style',
$settings['image_style_landscape_class'],
);
}
else {
$image_style = $settings['image_style_portrait'];
$item['attributes']['class'] = array(
'auto_image_style',
$settings['image_style_portrait_class'],
);
}
$element[$delta] = array(
'#theme' => 'image_formatter',
'#item' => $item,
'#image_style' => $image_style,
'#path' => isset($uri) ? $uri : '',
);
if (strpos($image_style, 'picture_mapping_') !== false) {
$mapping_name = substr($image_style, 16);
$fallback_image_style = '';
$picture_mapping = picture_mapping_load($mapping_name);
$breakpoint_styles = picture_get_mapping_breakpoints($picture_mapping, $fallback_image_style);
// Assume regular display.
$formatter = 'picture_formatter';
$colorbox_breakpoints = array();
$colorbox_fallback_image_style = '';
if (module_exists('picture')) {
$element[$delta] = array(
'#theme' => 'picture_formatter',
'#attached' => array(
'library' => array(
array(
'picture',
'picturefill_head',
),
array(
'picture',
'picturefill',
),
array(
'picture',
'picture.ajax',
),
),
),
'#item' => $item,
'#image_style' => $fallback_image_style,
'#breakpoints' => $breakpoint_styles,
'#path' => isset($uri) ? $uri : '',
'#colorbox_group' => $colorbox_breakpoints,
'#colorbox_image_style' => $colorbox_fallback_image_style,
);
}
}
}
return $element;
}