Загрузка изображений в Drupal 8

Аватар пользователя Sennheiser Sennheiser 21 апреля в 10:29

Здравствуйте!
Подскажите пожалуйста какой модуль использовать для простой загрузки изображений в D8 из редактора. Стандартный CKeditor умеет конечно вставлять картинки, но записываются они все в одну папку sites/default/files/inline-images, а хотелось бы как-то структуризировать их, например, чтобы они записывались под определенным именем или в определенную папку, то есть с использованием токенов. Также на данный момент они криво привязываются к материалам - если удалить материал, то изображения остаются.
Для семерки есть модуль неплохой - One Click Upload который решает эти вопросы. Есть ли что-то подобное для D8?

Комментарии

Аватар пользователя OldWarrior OldWarrior 21 апреля в 23:38
1

Sennheiser wrote: ...Также на данный момент они криво привязываются к материалам - если удалить материал, то изображения остаются...

Они не криво привязываются, они просто вставляются inline - т.е. не через поля. Таким же образом, как ссылки вообще на любые картинки или ресурсы в интернете. Система в этом случае не обязана знать про загруженные файлы.

Возможно, что-то из этого будет полезно:

Inline Image Attach
Inline Body Image to Image Field

Аватар пользователя Sennheiser Sennheiser 27 апреля в 14:37

Протестил оба модуля, по сути одно и тоже. Они просто автоматически добавляют в указанное поле инлайновскую картинку, то есть дублируют. А при удалении ноды, соответственно удаляют только картинку из поля.

Аватар пользователя ivnish ivnish 22 апреля в 7:58
1

Sennheiser wrote: Стандартный CKeditor умеет конечно вставлять картинки, но записываются они все в одну папку sites/default/files/inline-images, а хотелось бы как-то структуризировать их, например, чтобы они записывались под определенным именем или в определенную папку, то есть с использованием токенов.

На данный момент только патчить или использовать вот этот модуль

Sennheiser wrote: Также на данный момент они криво привязываются к материалам - если удалить материал, то изображения остаются.

Это логично. Ведь inline изображения не попадают в таблицу file_managed

Аватар пользователя gun_dose gun_dose 22 апреля в 8:26

https://www.drupal.org/project/ckeditor_uploadimage
Вот тут в описании указано, якобы можно менять папку, куда загружать, но ни разу не менял.
Кроме того, этот модуль добавляет файлы в таблицу file_managed, поэтому после удаления контента файлы должны удаляться.

Аватар пользователя Sennheiser Sennheiser 27 апреля в 11:25

И папку можно менять из коробки:

И также из коробки файлы добавляются в таблицу file_managed, но это не означает, что он удалится при удалении ноды. При загрузке просто показывается к какой ноде прикреплен файл:

но при удалении ноды, связь просто пропадает, а файл остаётся:

Или это не таблица file_managed ?

Аватар пользователя marassa marassa 27 апреля в 11:56

Sennheiser wrote: при удалении ноды, связь просто пропадает, а файл остаётся

Файлы удаляет крон, не сразу, если ему это не запретить на странице admin/config/media/file-system

Аватар пользователя Sennheiser Sennheiser 27 апреля в 12:05

Крон вроде как удаляет только временные файлы, а из скрина выше видно, что они постоянные.

Аватар пользователя marassa marassa 27 апреля в 12:52
1

Когда-то давно Друпал автоматически помечал постоянные, но более не используемые файлы как временные, а потом крон их подтирал. Потом народ стал сталкиваться с багами в ядре, когда нужные файлы ни с того ни с сего помечались как временные и исчезали навсегда. Насколько я знаю, локализовать и победить ошибку так и не удалось, и было принято революционное решение: не удалять ненужные файлы никогда, если админ сайта сам, на свой страх и риск не вставит в settings.php строку $config['file.settings']['make_unused_managed_files_temporary'] = TRUE;
Таким образом теперь в установке по умолчанию неиспользуемые файлы не удаляются никогда.
https://www.drupal.org/node/2891902
PS По наводке из вышеуказанной темы поставил модуль Audit Files и обнаружил у себя на сайте многие тыщи ненужных файлов, которые я по простоте своей считал давно удаленными. Теперь буду думать как бы с ними разобраться.

Аватар пользователя Sennheiser Sennheiser 27 апреля в 14:44

А можно, как-то настроить, чтобы удалялись только непривязанные к ноде инлайновские файлы, загруженные через редактор?

Аватар пользователя Sennheiser Sennheiser 6 мая в 13:33

При добавлении изображения через редактор с именем файла, который уже есть в папке inline-images - он не отобразится, так как переименовывается автоматически. Как это можно пофиксить?