You are here

protected function MediaPdfThumbnailFieldFormatter::getMediaThumbnailUrl in Media PDF Thumbnail 8.3

Same name and namespace in other branches
  1. 8.4 src/Plugin/Field/FieldFormatter/MediaPdfThumbnailFieldFormatter.php \Drupal\media_pdf_thumbnail\Plugin\Field\FieldFormatter\MediaPdfThumbnailFieldFormatter::getMediaThumbnailUrl()

Parameters

\Drupal\media\MediaInterface $media:

\Drupal\Core\Entity\EntityInterface $entity:

Return value

\Drupal\Core\Url|string|null

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

\Drupal\Core\Entity\EntityMalformedException

Overrides MediaThumbnailFormatter::getMediaThumbnailUrl

File

src/Plugin/Field/FieldFormatter/MediaPdfThumbnailFieldFormatter.php, line 104

Class

MediaPdfThumbnailFieldFormatter
Plugin implementation of the 'media_pdf_thumbnail_field_formatter' formatter.

Namespace

Drupal\media_pdf_thumbnail\Plugin\Field\FieldFormatter

Code

protected function getMediaThumbnailUrl(MediaInterface $media, EntityInterface $entity) {
  $url = NULL;
  $image_link_setting = $this
    ->getSetting('image_link');

  // Check if the formatter involves a link.
  if ($image_link_setting == 'content') {
    if (!$entity
      ->isNew()) {
      $url = $entity
        ->toUrl();
    }
  }
  elseif ($image_link_setting === 'media') {
    $url = $media
      ->toUrl();
  }
  elseif ('file') {
    $bundle = $media
      ->bundle();
    $data = $this->config
      ->getRawData();
    if (!empty($data[$bundle . '_enable'])) {
      $field = !empty($data[$bundle . '_field']) ? $data[$bundle . '_field'] : NULL;
      if ($field) {
        $fieldValue = $media
          ->get($field)
          ->getValue();
        $fid = !empty($fieldValue[0]['target_id']) ? $fieldValue[0]['target_id'] : NULL;
        $fileEntity = $fid ? $this->entityTypeManager
          ->getStorage('file')
          ->load($fid) : NULL;
        $url = $fileEntity ? file_create_url($fileEntity
          ->getFileUri()) : '';
      }
    }
  }
  return $url;
}