private function BlazyManager::buildResponsiveImage in Blazy 8.2
Same name and namespace in other branches
- 7 src/BlazyManager.php \Drupal\blazy\BlazyManager::buildResponsiveImage()
Build out Responsive image.
1 call to BlazyManager::buildResponsiveImage()
- BlazyManager::buildMedia in src/
BlazyManager.php - Build out (Responsive) image.
File
- src/
BlazyManager.php, line 275
Class
- BlazyManager
- Implements a public facing blazy manager.
Namespace
Drupal\blazyCode
private function buildResponsiveImage(array &$element, array &$attributes, array &$settings) {
$settings['responsive_image_style_id'] = $settings['resimage']
->id();
$responsive_image = $this
->getResponsiveImageStyles($settings['resimage']);
$element['#cache']['tags'] = $responsive_image['caches'];
// Makes Responsive image usable as CSS background image sources.
if (!empty($settings['background'])) {
$srcset = $dimensions = [];
foreach ($responsive_image['styles'] as $style) {
$styled = array_merge($settings, BlazyUtil::transformDimensions($style, $settings, FALSE));
// Sort image URLs based on width.
$data = $this
->backgroundImage($styled, $style);
$srcset[$styled['width']] = $data;
$dimensions[$styled['width']] = $data['ratio'];
}
// Sort the srcset from small to large image width or multiplier.
ksort($srcset);
ksort($dimensions);
$settings['urls'] = $srcset;
$settings['blazy_data']['dimensions'] = $dimensions;
$settings['padding_bottom'] = end($dimensions);
$settings['image_url'] = empty($settings['is_preview']) ? $settings['placeholder'] : $settings['image_url'];
Blazy::lazyAttributes($attributes, $settings);
}
}