crop.install in Crop API 8
Same filename and directory in other branches
Install, update and uninstall functions for the Crop API module.
File
crop.installView source
<?php
/**
* @file
* Install, update and uninstall functions for the Crop API module.
*/
use Drupal\crop\Entity\Crop;
/**
* 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');
}
/**
* Uninstall deprecated sub-module from active instance.
*/
function crop_update_8003() {
if (\Drupal::moduleHandler()
->moduleExists('crop_media_entity')) {
\Drupal::service('module_installer')
->uninstall([
'crop_media_entity',
]);
}
}
Functions
Name | Description |
---|---|
crop_update_8001 | Delete orphaned crop entities. |
crop_update_8002 | Let Drupal know that there is a new config available. |
crop_update_8003 | Uninstall deprecated sub-module from active instance. |