Commit be6c0606 authored by Garrett Rathbone's avatar Garrett Rathbone Committed by Gaus Surahman
Browse files

Issue #3210636 by grathbone, bas123, gausarts: Solution to supporting...

Issue #3210636 by grathbone, bas123, gausarts: Solution to supporting image-to-iframe embeds for non oembed videos (Video Embed Field)
parent 2617dcb8
Loading
Loading
Loading
Loading
+10 −0
Changes for src/Dejavu/BlazyVideoBase.php: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -62,4 +62,14 @@ abstract class BlazyVideoBase extends FormatterBase {
    ];
  }

  /**
   * Returns the optional VEF service to avoid dependency for optional plugins.
   */
  protected function vefProviderManager() {
    if (function_exists('video_embed_field_theme')) {
      return \Drupal::service('video_embed_field.provider_manager');
    }
    return FALSE;
  }

}
+13 −1
Changes for src/Plugin/Field/FieldFormatter/BlazyVideoFormatter.php: 13 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -43,14 +43,26 @@ class BlazyVideoFormatter extends BlazyVideoBase implements ContainerFactoryPlug
   */
  public function buildElements(array &$build, $items) {
    $settings = $build['settings'];
    $settings['bundle'] = 'remote_video';
    $settings['media_source'] = 'video_embed_field';
    $vef = $this->vefProviderManager();

    if (!$vef) {
      return;
    }

    foreach ($items as $delta => $item) {
      $settings['input_url'] = strip_tags($item->value);
      $settings['delta'] = $delta;
      if (empty($settings['input_url'])) {

      if (empty($settings['input_url']) || !($provider = $vef->loadProviderFromInput($settings['input_url']))) {
        continue;
      }

      // Ensures thumbnail is available.
      $provider->downloadThumbnail();
      $settings['uri'] = $provider->getLocalThumbnailUri();

      $this->blazyOembed->build($settings);

      $box = ['item' => $item, 'settings' => $settings];