You are here

public static function Blazy::aspectRatioAttributes in Blazy 8.2

Same name and namespace in other branches
  1. 7 src/Blazy.php \Drupal\blazy\Blazy::aspectRatioAttributes()

Modifies container attributes with aspect ratio for iframe, image, etc.

1 call to Blazy::aspectRatioAttributes()
Blazy::preprocessBlazy in src/Blazy.php
Prepares variables for blazy.html.twig templates.

File

src/Blazy.php, line 280

Class

Blazy
Provides common blazy utility static methods.

Namespace

Drupal\blazy

Code

public static function aspectRatioAttributes(array &$attributes, array &$settings) {
  $settings['ratio'] = empty($settings['ratio']) ? '' : str_replace(':', '', $settings['ratio']);
  if ($settings['height'] && $settings['ratio'] == 'fluid') {

    // If "lucky", Blazy/ Slick Views galleries may already set this once.
    // Lucky when you don't flatten out the Views output earlier.
    $padding = $settings['padding_bottom'] ?: round($settings['height'] / $settings['width'] * 100, 2);
    self::inlineStyle($attributes, 'padding-bottom: ' . $padding . '%;');

    // Views rewrite results or Twig inline_template may strip out `style`
    // attributes, provide hint to JS.
    $attributes['data-ratio'] = $padding;
  }
}