moduleExists('media_entity')) { $info = system_get_info('module', 'media_entity'); if (version_compare($info['version'], '8.x-2') < 0) { $incompatible = TRUE; } } if ($incompatible) { $requirements['crop_media'] = [ 'title' => t('Crop API'), 'value' => t('This branch of Crop API is not compatible with the version of Media Entity installed.'), 'description' => t('This branch of Crop API is not compatible with the version of Media Entity installed.'), 'severity' => REQUIREMENT_ERROR, ]; } return $requirements; } /** * Delete orphaned crop entities. */ function crop_update_8001(&$sandbox) { // Unsure we have current element set to 0. if (!isset($sandbox['current'])) { $sandbox['current'] = 0; $sandbox['total'] = \Drupal::entityQuery('crop') ->count() ->execute(); } $items_per_batch = 100; $crops = \Drupal::entityQuery('crop') ->sort('cid', 'ASC') ->range($sandbox['current'], $items_per_batch) ->execute(); if (empty($crops)) { $sandbox['#finished'] = 1; } else { foreach ($crops as $cid) { /** @var \Drupal\crop\Entity\Crop $crop */ $crop = Crop::load($cid); $files = \Drupal::entityQuery('file') ->condition('uri', $crop->get('uri')->value) ->count(); // Checks if the file exist, if not exist delete this orphan crop. if (empty($files->execute())) { // Lets tell the site admin what we are doing. \Drupal::logger('crop_api') ->notice( 'The orphaned crop @cid referring to image with URI @uri has been deleted.', ['@cid' => $cid, 'uri' => $crop->uri->value] ); $crop->delete(); } $sandbox['current']++; } $sandbox['#finished'] = $sandbox['current'] / $sandbox['total']; } } /** * Let Drupal know that there is a new config available. */ function crop_update_8002() { \Drupal::service('config.installer') ->installDefaultConfig('module', 'crop'); }