You are here

public static function BlazyMedia::build in Blazy 8.2

Same name and namespace in other branches
  1. 8 src/BlazyMedia.php \Drupal\blazy\BlazyMedia::build()
  2. 7 src/BlazyMedia.php \Drupal\blazy\BlazyMedia::build()

Builds the media field which is not understood by theme_blazy().

@todo make it non-static method.

Parameters

object $media: The media being rendered.

array $settings: The contextual settings array.

Return value

array|bool The renderable array of the media field, or false if not applicable.

Overrides BlazyMediaInterface::build

4 calls to BlazyMedia::build()
BlazyEntity::getFileOrMedia in src/BlazyEntity.php
Returns file view or media due to being empty returned by view builder.
BlazyFormatterTest::testBlazyMedia in tests/src/Kernel/BlazyFormatterTest.php
Tests the Blazy formatter faked Media integration.
BlazyMediaUnitTest::testBlazyMediaBuild in tests/src/Unit/BlazyMediaUnitTest.php
Tests \Drupal\blazy\BlazyMedia::build().
BlazyOEmbed::getMediaItem in src/BlazyOEmbed.php
Gets the Media item thumbnail.

File

src/BlazyMedia.php, line 17

Class

BlazyMedia
Provides extra utilities to work with core Media.

Namespace

Drupal\blazy

Code

public static function build($media, array $settings = []) {

  // Prevents fatal error with disconnected internet when having ME Facebook,
  // ME SlideShare, resorted to static thumbnails to avoid broken displays.
  if (!empty($settings['input_url'])) {
    try {
      \Drupal::httpClient()
        ->get($settings['input_url'], [
        'timeout' => 3,
      ]);
    } catch (\Exception $e) {
      return FALSE;
    }
  }
  $settings['type'] = 'rich';
  $options = $settings['media_source'] == 'video_file' ? [
    'type' => 'file_video',
  ] : $settings['view_mode'];
  $build = $media
    ->get($settings['source_field'])
    ->view($options);
  $build['#settings'] = $settings;
  return isset($build[0]) ? self::wrap($build) : $build;
}