You are here

protected function MediaPdfThumbnailImageManager::setImageToMediaThumbnail in Media PDF Thumbnail 8.4

Same name and namespace in other branches
  1. 8.3 src/Manager/MediaPdfThumbnailImageManager.php \Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailImageManager::setImageToMediaThumbnail()

Parameters

\Drupal\media\MediaInterface $media:

$fileEntityInfo:

$thumbnailType:

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

\Drupal\Core\TypedData\Exception\MissingDataException

\Exception

1 call to MediaPdfThumbnailImageManager::setImageToMediaThumbnail()
MediaPdfThumbnailImageManager::createThumbnail in src/Manager/MediaPdfThumbnailImageManager.php

File

src/Manager/MediaPdfThumbnailImageManager.php, line 198

Class

MediaPdfThumbnailImageManager
Class MediaPdfThumbnailImageManager.

Namespace

Drupal\media_pdf_thumbnail\Manager

Code

protected function setImageToMediaThumbnail(MediaInterface $media, $fileEntityInfo, $thumbnailType) {
  $revisionFieldValue = $media
    ->get('vid')
    ->get(0)
    ->getValue();
  $vid = !empty($revisionFieldValue['value']) ? $revisionFieldValue['value'] : NULL;
  $mediaRevision = $this->entityTypeManager
    ->getStorage('media')
    ->loadRevision($vid);
  $currentThumbnailFileUri = $mediaRevision
    ->get('thumbnail')->entity
    ->getFileUri();
  $thumbnailFileUri = $this->entityTypeManager
    ->getStorage('file')
    ->load($fileEntityInfo['fid'])
    ->getFileUri();
  if ($currentThumbnailFileUri != $thumbnailFileUri) {
    $mediaRevision
      ->set('thumbnail', $fileEntityInfo['fid']);
    $mediaRevision
      ->save();
    $this->entityTypeManager
      ->getStorage($media
      ->getEntityTypeId())
      ->resetCache([
      $media
        ->id(),
    ]);
    $this->cache
      ->invalidateTags($media
      ->getCacheTagsToInvalidate());
  }
  return;

  // Manage revision.
  if ($vid) {

    // Handle file usage.
    $values = [
      'fid' => $fileEntityInfo['fid'],
      'module' => $media
        ->bundle(),
      'type' => $media
        ->getEntityTypeId(),
      'id' => $media
        ->id(),
    ];
    if (!$this
      ->entryExists('file_usage', $values)) {
      $query = $this->connection
        ->insert('file_usage');
      $values['count'] = 1;
      $query
        ->fields($values);
      $query
        ->execute();
    }

    // Handle media field revision.
    $query = $this->connection
      ->update('media_field_revision');
    $values = [
      'langcode' => $media
        ->language()
        ->getId(),
      'thumbnail__target_id' => $fileEntityInfo['fid'],
      'thumbnail__alt' => $fileEntityInfo['filename'],
    ];
    $query
      ->fields($values);
    $query
      ->condition('mid', $media
      ->id());
    $query
      ->condition('vid', $vid);
    $query
      ->condition('langcode', $media
      ->language()
      ->getId());
    $query
      ->execute();
    $this->entityTypeManager
      ->getStorage($media
      ->getEntityTypeId())
      ->resetCache([
      $media
        ->id(),
    ]);
    $this->cache
      ->invalidateTags($media
      ->getCacheTagsToInvalidate());
  }
}