public static function Blazy::imageAttributes in Blazy 8.2
Same name and namespace in other branches
- 8 src/Blazy.php \Drupal\blazy\Blazy::imageAttributes()
- 7 src/Blazy.php \Drupal\blazy\Blazy::imageAttributes()
Modifies $variables to provide optional (Responsive) image attributes.
1 call to Blazy::imageAttributes()
- Blazy::buildMedia in src/
Blazy.php - Modifies variables for image and iframe.
File
- src/
Blazy.php, line 150
Class
- Blazy
- Provides common blazy utility static methods.
Namespace
Drupal\blazyCode
public static function imageAttributes(array &$variables) {
$item = $variables['item'];
$settings =& $variables['settings'];
$image =& $variables['image'];
$attributes =& $variables['item_attributes'];
// Respects hand-coded image attributes.
if ($item) {
if (!isset($attributes['alt'])) {
$attributes['alt'] = empty($item->alt) ? NULL : trim($item->alt);
}
// Do not output an empty 'title' attribute.
if (isset($item->title) && mb_strlen($item->title) != 0) {
$attributes['title'] = trim($item->title);
}
}
// Only output dimensions for non-svg. Respects hand-coded image attributes.
// Do not pass it to $attributes to also respect both (Responsive) image.
if (!isset($attributes['width']) && empty($settings['unstyled'])) {
$image['#height'] = $settings['height'];
$image['#width'] = $settings['width'];
}
$attributes['class'][] = 'media__image';
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode.
if (!empty($settings['decode'])) {
$attributes['decoding'] = 'async';
}
self::commonAttributes($attributes, $variables['settings']);
$image['#attributes'] = empty($image['#attributes']) ? $attributes : NestedArray::mergeDeep($image['#attributes'], $attributes);
// Provides a noscript if so configured, before any lazy defined.
if (!empty($settings['noscript']) && empty($settings['is_preview'])) {
self::buildNoscriptImage($variables);
}
// Provides [data-(src|lazy)] for (Responsive) image, after noscript.
if (!empty($settings['lazy'])) {
self::lazyAttributes($image['#attributes'], $settings);
}
}