getPath('media') . '/images/icons'; $destination = \Drupal::config('media.settings')->get('icon_base_uri'); /** @var \Drupal\Core\File\FileSystemInterface $file_system */ $file_system = \Drupal::service('file_system'); $file_system->prepareDirectory($destination, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS); $files = $file_system->scanDirectory($source, '/.*\.(svg|png|jpg|jpeg|gif)$/'); foreach ($files as $file) { // When reinstalling the media module we don't want to copy the icons when // they already exist. The icons could be replaced (by a contrib module or // manually), so we don't want to replace the existing files. Removing the // files when we uninstall could also be a problem if the files are // referenced somewhere else. Since showing an error that it was not // possible to copy the files is also confusing, we silently do nothing. if (!file_exists($destination . DIRECTORY_SEPARATOR . $file->filename)) { try { $file_system->copy($file->uri, $destination, FileExists::Error); } catch (FileException) { // Ignore and continue. } } } // Grant the "view media" permission to all users by default. if (\Drupal::moduleHandler()->moduleExists('user')) { user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, ['view media']); user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, ['view media']); } } /** * Implements hook_update_last_removed(). */ function media_update_last_removed(): int { return 8700; }