You are here

public static function Blazy::preprocessFileVideo in Blazy 8.2

Overrides variables for file-video.html.twig templates.

1 call to Blazy::preprocessFileVideo()
blazy_preprocess_file_video in ./blazy.module
Overrides variables for file-video.html.twig templates.

File

src/Blazy.php, line 381

Class

Blazy
Provides common blazy utility static methods.

Namespace

Drupal\blazy

Code

public static function preprocessFileVideo(array &$variables) {
  if ($files = $variables['files']) {
    if (empty($variables['attributes']['data-b-preview'])) {
      $variables['attributes']
        ->addClass([
        'b-lazy',
      ]);
      foreach ($files as $file) {
        $source_attributes =& $file['source_attributes'];
        $source_attributes
          ->setAttribute('data-src', $source_attributes['src']
          ->value());
        $source_attributes
          ->setAttribute('src', '');
      }
    }

    // Adds a poster image if so configured.
    if (isset($files[0], $files[0]['blazy']) && ($blazy = $files[0]['blazy'])) {
      if ($blazy
        ->get('image') && $blazy
        ->get('uri')) {
        $settings = $blazy
          ->storage();
        $settings['_dimensions'] = TRUE;
        BlazyUtil::imageUrl($settings);
        if (!empty($settings['image_url'])) {
          $variables['attributes']
            ->setAttribute('poster', $settings['image_url']);
        }
        if (!empty($settings['lightbox'])) {
          $variables['attributes']
            ->setAttribute('autoplay', TRUE);
        }
      }
    }
    $attrs = [
      'data-b-lazy',
      'data-b-preview',
    ];
    $variables['attributes']
      ->addClass([
      'media__element',
    ]);
    $variables['attributes']
      ->removeAttribute($attrs);
  }
}