Как задать путь размещения для файла в feeds.

Главные вкладки

Аватар пользователя VasyOK VasyOK 25 октября 2022 в 1:35

Экспортирую-импортирую контент с одного сайта на другой.

Проблема в контенте есть фото с одним названием файла, но находящиеся в разных директориях.

Есть ли возможность при импорте через feeds указать не только имя файла типа
karninka.jpg,
но и путь типа
/sites/default/files/2022/March/abrakadabra/karninka.jpg

?

Комментарии

Аватар пользователя ivnish ivnish 25 октября 2022 в 7:17

Файл должен будет размещен по путям, которые прописаны в настройках поля куда этот файл импортируется

Аватар пользователя VasyOK VasyOK 25 октября 2022 в 23:30

Потому что на стром сайте каждый файл лежит в папке в зависимости от даты. А на новом сайте, когда через feeds импортируется - помещает файлы в папку даты импорта, а не даты указанной в созданиии ноды.

Аватар пользователя VasyOK VasyOK 26 октября 2022 в 14:59

Хорошо, а что если пойти другим путем. Импортировать сначала файлы c ИДшниками. А при импортировании контента указывать в поле изображения не имя файла, а его ИД.

Вот только как при импорте файла его расположение указать?

Аватар пользователя VasyOK VasyOK 30 октября 2022 в 17:57

Еще вариант.

Как для поля загрузки изображения указать папку по дате создания ноды?

По умолчанию там [date:custom:Y]-[date:custom:m] - но это текщая дата, а не дата создания.

Попытался прописать там [node:created], но при сохранении пишет
File directory is using the following invalid tokens: [node:created]

Аватар пользователя VasyOK VasyOK 30 октября 2022 в 18:15

В природе - есть.
В списке токенов для поля изображения - нет.

А можно его как-то добавить туда?

Через аргументы возможно привязаться?
Например [current-page:url:unaliased:args:value:1] - nid подтягивает

Аватар пользователя marassa marassa 1 ноября 2022 в 8:26

VasyOK wrote: Неужели никто модулем filefield_paths не пользовался?

Пользуюсь активно, только модулем feeds не пользуюсь, и не вполне понимаю какие токены доступны в его контексте. Мне например удивительно, что [current-page] что-то выдает - какая ещё текущая страница может быть у пакетной процедуры? Но раз работает, то может быть попробовать что-нибудь типа [current-page:url:unaliased:args:value:1:entity:created]?

Аватар пользователя VasyOK VasyOK 2 ноября 2022 в 0:38

Итак задача экспортировать-импортировать между Drupal сайтами материалы с полем позволяющем размещать или ссылаться на файлы в разных местах файловой системы.

Задача осложняется тем, что feeds (сейчас) не умеет ложить файлы в разных папках.
Можно определить в материале поле, куда вписывается расположение файла типа
2022/March/abrakadabra
и модулем filefield_paths указать путь файла через токен этого поля, т.е.
[node:field_imagepath]

filefield_paths работает т.обр., что ложит файлы сначала в свою папку, а потом уже в указанную в настройках поля выше. Т.е. опции feeds на файлы уже лежащие в директории не распространяются.
Есть патч https://www.drupal.org/project/filefield_paths/issues/3069511. Но мне кажеться это можно исправить через контриб модули. Как - пока не знаю.

Аватар пользователя voviko voviko 2 ноября 2022 в 17:19

я вот с feeds вообще не дружу, поэтому мало могу подсказать.
Есть хуки и события... И еще есть FileSystem::move

например hook_node_update.
сохранили ноду и переместили файл в новую директорию.

Аватар пользователя VasyOK VasyOK 3 ноября 2022 в 1:28

Спасибо за участие. Пока не для моих умственных возможностей. Мой способ выше кстати не идеальный. Импортирует в зависимости от фазы Луны.