function picture_field_formatter_picture_sizes_formatter_view in Picture 7.2
Helper function.
See also
picture_field_formatter_view()
File
- ./
picture.module, line 1097 - Picture formatter.
Code
function picture_field_formatter_picture_sizes_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$elements = array();
$settings = $display['settings'];
// Check if the formatter involves a link.
$image_link = $display['settings']['image_link'];
if ($image_link == 'content') {
$uri = entity_uri($entity_type, $entity);
}
elseif ($image_link == 'file') {
$link_file = TRUE;
}
elseif ($image_link) {
if (isset($entity->{$image_link})) {
// Support for field translations.
$language = field_language($entity_type, $entity, $image_link, $langcode);
$link_field = $entity->{$image_link};
if (isset($link_field[$language])) {
$link_values = $link_field[$language];
}
}
elseif (image_style_load($image_link)) {
$link_file = $image_link;
}
}
foreach ($items as $delta => $item) {
if (isset($link_file)) {
$uri = array(
'path' => $link_file === TRUE ? file_create_url($item['uri']) : image_style_url($link_file, $item['uri']),
'options' => array(),
);
}
// Handle multiple link with image values.
if (isset($link_values)) {
if (isset($link_values[$delta]['url'])) {
$uri = array(
'path' => $link_values[$delta]['url'],
'options' => array(
'attributes' => $link_values[$delta]['attributes'],
),
);
// Handle query fragment if there is any.
if (!empty($link_values[$delta]['query'])) {
$uri['options']['query'] = $link_values[$delta]['query'];
}
}
else {
unset($uri);
}
}
$elements[$delta] = array(
'#theme' => 'picture_sizes_formatter',
'#item' => $item,
'#image_styles' => array_filter($settings['image_styles']),
'#fallback_image_style' => $settings['fallback_image_style'] ? $settings['fallback_image_style'] : PICTURE_EMPTY_IMAGE,
'#sizes' => $settings['sizes'],
'#path' => isset($uri) ? $uri : '',
'#lazyload_data_attributes' => $settings['lazyload_data_attributes'],
'#lazyload_class' => $settings['lazyload_class'],
);
}
return $elements;
}