public function BlazyManagerBase::setResponsiveImageDimensions in Blazy 8.2
Sets dimensions once to reduce method calls for Responsive image.
1 call to BlazyManagerBase::setResponsiveImageDimensions()
- BlazyFormatter::preBuildElements in src/
BlazyFormatter.php - Modifies the field formatter settings inherited by child elements.
File
- src/
BlazyManagerBase.php, line 427
Class
- BlazyManagerBase
- Implements BlazyManagerInterface.
Namespace
Drupal\blazyCode
public function setResponsiveImageDimensions(array &$settings = [], $initial = TRUE) {
$srcset = [];
foreach ($this
->getResponsiveImageStyles($settings['resimage'])['styles'] as $style) {
$styled = array_merge($settings, BlazyUtil::transformDimensions($style, $settings, $initial));
// In order to avoid layout reflow, we get dimensions beforehand.
$srcset[$styled['width']] = round($styled['height'] / $styled['width'] * 100, 2);
}
// Sort the srcset from small to large image width or multiplier.
ksort($srcset);
// Informs individual images that dimensions are already set once.
$settings['blazy_data']['dimensions'] = $srcset;
$settings['padding_bottom'] = end($srcset);
$settings['_dimensions'] = TRUE;
}