You are here

public function MediaPdfThumbnailService::regenerateAllThumbnails in Media PDF Thumbnail 8.4

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

File

src/Service/MediaPdfThumbnailService.php, line 198

Class

MediaPdfThumbnailService
Class MediaPdfThumbnailService

Namespace

Drupal\media_pdf_thumbnail\Service

Code

public function regenerateAllThumbnails() {
  $mediaStorage = $this->entityTypeManager
    ->getStorage('media');
  $operations = [];
  foreach ($mediaStorage
    ->loadMultiple() as $media) {
    $languageManager = \Drupal::service('language_manager');
    $languages = $languageManager
      ->getLanguages();
    foreach ($languages as $language) {
      $translation = $media
        ->hasTranslation($language
        ->getId()) ? $media
        ->getTranslation($language
        ->getId()) : NULL;
      if ($translation) {
        $translation
          ->bundle();
        $fieldName = $this->mediaPdfThumbnailConfig
          ->get($translation
          ->bundle() . '_field');
        $thumbnailType = $this->mediaPdfThumbnailConfig
          ->get($translation
          ->bundle() . '_enable') ? 'pdf' : 'generic';
        if (empty($fieldName) || empty($thumbnailType)) {
          continue;
        }
        $operations[] = [
          'Drupal\\media_pdf_thumbnail\\Service\\MediaPdfThumbnailService::generateThumbnail',
          [
            $translation,
            $fieldName,
            $thumbnailType,
            TRUE,
          ],
        ];
      }
    }
  }
  $batch = [
    'title' => t('Media PDF Thumbnail'),
    'operations' => $operations,
    'init_message' => t('Thumbnail creating process is starting.'),
    'progress_message' => t('Processed @current out of @total. Estimated time: @estimate.'),
    'error_message' => t('An error occurred during processing'),
    'finished' => '\\Drupal\\media_pdf_thumbnail\\Service\\MediaPdfThumbnailService::finishedCallback',
  ];
  batch_set($batch);
}