Экспортирую-импортирую контент с одного сайта на другой.
Проблема в контенте есть фото с одним названием файла, но находящиеся в разных директориях.
Есть ли возможность при импорте через feeds указать не только имя файла типа
karninka.jpg,
но и путь типа
/sites/default/files/2022/March/abrakadabra/karninka.jpg
?
Комментарии
Файл должен будет размещен по путям, которые прописаны в настройках поля куда этот файл импортируется
вроде раньше загружал из папки и уже друпал раскладывал куда надо...
Могу путать, давно делал...
Да,в этом и проблема. Ищу способ задать путь для каждого файла.
Зачем?
Потому что на стром сайте каждый файл лежит в папке в зависимости от даты. А на новом сайте, когда через feeds импортируется - помещает файлы в папку даты импорта, а не даты указанной в созданиии ноды.
Хорошо, а что если пойти другим путем. Импортировать сначала файлы c ИДшниками. А при импортировании контента указывать в поле изображения не имя файла, а его ИД.
Вот только как при импорте файла его расположение указать?
Еще вариант.
Как для поля загрузки изображения указать папку по дате создания ноды?
По умолчанию там [date:custom:Y]-[date:custom:m] - но это текщая дата, а не дата создания.
Попытался прописать там [node:created], но при сохранении пишет
File directory is using the following invalid tokens: [node:created]
А такой токен есть в списке токенов?
В природе - есть.
В списке токенов для поля изображения - нет.
А можно его как-то добавить туда?
Через аргументы возможно привязаться?
Например [current-page:url:unaliased:args:value:1] - nid подтягивает
Неужели никто модулем filefield_paths не пользовался?
Пользуюсь активно, только модулем feeds не пользуюсь, и не вполне понимаю какие токены доступны в его контексте. Мне например удивительно, что [current-page] что-то выдает - какая ещё текущая страница может быть у пакетной процедуры? Но раз работает, то может быть попробовать что-нибудь типа [current-page:url:unaliased:args:value:1:entity:created]?
Итак задача экспортировать-импортировать между Drupal сайтами материалы с полем позволяющем размещать или ссылаться на файлы в разных местах файловой системы.
Задача осложняется тем, что feeds (сейчас) не умеет ложить файлы в разных папках.
Можно определить в материале поле, куда вписывается расположение файла типа
2022/March/abrakadabra
и модулем filefield_paths указать путь файла через токен этого поля, т.е.
[node:field_imagepath]
filefield_paths работает т.обр., что ложит файлы сначала в свою папку, а потом уже в указанную в настройках поля выше. Т.е. опции feeds на файлы уже лежащие в директории не распространяются.
Есть патч https://www.drupal.org/project/filefield_paths/issues/3069511. Но мне кажеться это можно исправить через контриб модули. Как - пока не знаю.
я вот с feeds вообще не дружу, поэтому мало могу подсказать.
Есть хуки и события... И еще есть FileSystem::move
например hook_node_update.
сохранили ноду и переместили файл в новую директорию.
Спасибо за участие. Пока не для моих умственных возможностей. Мой способ выше кстати не идеальный. Импортирует в зависимости от фазы Луны.