image_field_config_update(FieldConfigInterface $field)
Implements hook_ENTITY_TYPE_update() for 'field_config'.
File
- core/modules/image/image.module, line 417
- Exposes global functionality for creating image styles.
Code
function image_field_config_update(FieldConfigInterface $field) { $field_storage = $field->getFieldStorageDefinition(); if ($field_storage->getType() != 'image') { // Only act on image fields. return; } $prior_instance = $field->original; $uuid_new = $field->getSetting('default_image')['uuid']; $uuid_old = $prior_instance->getSetting('default_image')['uuid']; // If the old and new files do not match, update the default accordingly. $file_new = $uuid_new ? \Drupal::entityManager()->loadEntityByUuid('file', $uuid_new) : FALSE; if ($uuid_new != $uuid_old) { // Save the new file, if present. if ($file_new) { $file_new->status = FILE_STATUS_PERMANENT; $file_new->save(); \Drupal::service('file.usage')->add($file_new, 'image', 'default_image', $field->uuid()); } // Delete the old file, if present. if ($uuid_old && ($file_old = \Drupal::entityManager()->loadEntityByUuid('file', $uuid_old))) { \Drupal::service('file.usage')->delete($file_old, 'image', 'default_image', $field->uuid()); } } // If the upload destination changed, then move the file. if ($file_new && (file_uri_scheme($file_new->getFileUri()) != $field_storage->getSetting('uri_scheme'))) { $directory = $field_storage->getSetting('uri_scheme') . '://default_images/'; file_prepare_directory($directory, FILE_CREATE_DIRECTORY); file_move($file_new, $directory . $file_new->filename); } }
Please login to continue.