You are here

public function MediaPdfThumbnailImageManager::createThumbnail in Media PDF Thumbnail 8.3

Same name and namespace in other branches
  1. 8.4 src/Manager/MediaPdfThumbnailImageManager.php \Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailImageManager::createThumbnail()
  2. 8 src/Manager/MediaPdfThumbnailImageManager.php \Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailImageManager::createThumbnail()
  3. 8.2 src/Manager/MediaPdfThumbnailImageManager.php \Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailImageManager::createThumbnail()

Create pdf thumbnail.

Parameters

$entity:

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

\Drupal\Core\Entity\EntityStorageException

File

src/Manager/MediaPdfThumbnailImageManager.php, line 77

Class

MediaPdfThumbnailImageManager
Class MediaPdfThumbnailImageManager.

Namespace

Drupal\media_pdf_thumbnail\Manager

Code

public function createThumbnail($entity) {
  $entityTypeId = $entity
    ->getEntityTypeId();
  $bundle = $entity
    ->bundle();
  if ($entityTypeId == 'media') {
    $config = $this->configFactory
      ->get('media_pdf_thumbnail.bundles.settings');

    // If not enabled for this bundle.
    if (empty($config
      ->get($bundle . '_enable'))) {
      return;
    }
    $fieldName = $config
      ->get($bundle . '_field');
    if ($fieldName && $entity
      ->hasField($fieldName) && !empty($entity
      ->get($fieldName)
      ->getValue())) {
      $fileEntity = $this
        ->getFileEntity($entity
        ->get($fieldName)
        ->getValue()[0]['target_id']);
      if ($fileEntity && $fileEntity
        ->getMimeType() == 'application/pdf') {
        $fileEntityInfo = $this
          ->generatePdfImage($fileEntity) ? $this
          ->createThumbnailFileEntity($fileEntity
          ->getFileUri()) : NULL;
        if (!empty($fileEntityInfo)) {
          $this
            ->setImageToMediaThumbnail($entity, $fileEntityInfo);
        }
      }
    }
  }
}