protected function MediaPdfThumbnailImageManager::setImageToMediaThumbnail in Media PDF Thumbnail 8.4
Same name and namespace in other branches
- 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()
File
- src/
Manager/ MediaPdfThumbnailImageManager.php, line 198
Class
- MediaPdfThumbnailImageManager
- Class MediaPdfThumbnailImageManager.
Namespace
Drupal\media_pdf_thumbnail\ManagerCode
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());
}
}