Особенно полезно, когда вы использовали проект как шаблон для другого сайта и надо почистить данные. Друпал хоть и показывает статистику использования файлов, но удалять файлы не позволяет из реестра /admin/content/files.
Напишем небольшой скрипт, чтобы решить эту проблему.
Скрипт удалит все файлы, которые не имеют связей.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
$file_storage = \Drupal::entityTypeManager()->getStorage('file'); $fids = Drupal::entityQuery('file') ->condition('status', 1) ->accessCheck(FALSE) ->execute(); $file_usage = Drupal::service('file.usage'); foreach ($fids as $fid) { $file = Drupal\file\Entity\File::load($fid); $usage = $file_usage->listUsage($file); // уберите это условие, // если хотите вообще почистить реестр if (count($usage) == 0) { $file->delete(); } } |
Осталось решить как запустить данный код, я временно добавляю его в какой то определенный хук и потом триггрерю его.
Но можно создать отдельный php файл и использовать команду:
|
|
drush php-script myfile.php |
Выполнение команды производится относительно корня сайта, учитывайте это.
Drupal 9/10
Данная запись опубликована в 17.10.2024 19:51 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Май 19, 2023 г.
Посмотрим как получить непосредственный доступ к файлу без загрузки файла в хранилище, при его загрузке в поле типа "file" Form API.
Много гайдов посвящено тому как использовать поле managed_file, а для unmanaged случая считается, что разработчик ...
Читать
Июль 14, 2023 г.
Как без хуков preprocess в Drupal добавить, например, атрибут target для ссылки в шаблоне?
Например, возьмем штатный шаблон file-link.html.twig:
[crayon-6a7f151a6541d493852654/]
Используем фильтр merge, добавляя нужные атрибуты:
[crayon-6a7f151a65424075780151/]
Читать
Октябрь 18, 2023 г.
Сущность возвращает язык в контексте выбранного языка, но иногда нужно получить оригинальный язык node или другой entity.
Вот так выглядит запрос в контексте:
[crayon-6a7f151a654fd100597784/]
А так можно получить код языка оригинальной версии ...
Читать
Сентябрь 5, 2025 г.
Иногда в Drupal возникает ситуация: вы удаляете поле с типов сущностей (bundle), но оно не исчезает полностью из системы. UI говорит, что поле «используется», хотя на самом деле ни одна сущность его не использует. В этом случае поле остаётся в конфигурации ...
Читать