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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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.