protected function MediaPdfThumbnailFieldFormatter::getMediaThumbnailUrl in Media PDF Thumbnail 8.4
Same name and namespace in other branches
- 8.3 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 114 
Class
- MediaPdfThumbnailFieldFormatter
- Plugin implementation of the 'media_pdf_thumbnail_field_formatter' formatter.
Namespace
Drupal\media_pdf_thumbnail\Plugin\Field\FieldFormatterCode
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->mediaPdfThumbnailConfig
      ->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;
}