X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Ffile%2Ffile.install;h=6274efc7c912f52ffe9697085ce4b45e3a8dc8f9;hb=5b8bb166bfa98770daef9de5c127fc2e6ef02340;hp=9134a25e9e29b6f9129a64ed7993db35c130c429;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/web/core/modules/file/file.install b/web/core/modules/file/file.install index 9134a25e9..6274efc7c 100644 --- a/web/core/modules/file/file.install +++ b/web/core/modules/file/file.install @@ -5,6 +5,8 @@ * Install, update and uninstall functions for File module. */ +use Drupal\Core\Entity\Entity\EntityViewDisplay; + /** * Implements hook_schema(). */ @@ -116,3 +118,49 @@ function file_requirements($phase) { return $requirements; } + +/** + * Prevent unused files from being deleted. + */ +function file_update_8300() { + // Disable deletion of unused permanent files. + \Drupal::configFactory()->getEditable('file.settings') + ->set('make_unused_managed_files_temporary', FALSE) + ->save(); + + return t('Files that have no remaining usages are no longer deleted by default.'); +} + +/** + * Add 'use_description_as_link_text' setting to file field formatters. + */ +function file_update_8001() { + $displays = EntityViewDisplay::loadMultiple(); + foreach ($displays as $display) { + /** @var \Drupal\Core\Entity\Entity\EntityViewDisplay $display */ + $fields_settings = $display->get('content'); + $changed = FALSE; + foreach ($fields_settings as $field_name => $settings) { + if (!empty($settings['type'])) { + switch ($settings['type']) { + // The file_table formatter never displayed available descriptions + // before, so we disable this option to ensure backward compatibility. + case 'file_table': + $fields_settings[$field_name]['settings']['use_description_as_link_text'] = FALSE; + $changed = TRUE; + break; + + // The file_default formatter always displayed available descriptions + // before, so we enable this option to ensure backward compatibility. + case 'file_default': + $fields_settings[$field_name]['settings']['use_description_as_link_text'] = TRUE; + $changed = TRUE; + break; + } + } + } + if ($changed === TRUE) { + $display->set('content', $fields_settings)->save(); + } + } +}