Миграция картинки по URL в Media поле (Drupal)

Мне нужен был обработчик для migration API, который создаёт media entity по URL и возвращает его ID.

Обработчики представляют из себя расширения ProcessPluginBase, которые нужно размещать в папке /src/Plugin/migrate/process вашего модуля.

Файл /src/Plugin/migrate/process/MediaGenerate.php

Т.к. media сущность настраивается разработчиком, то в качестве параметров нужно указать bundle сущности (destination_bundle) и поле (destination_field), в которое будет записываться file reference. Ещё один параметр — это подкаталог pubic://, куда будет записана картинка — public_dir.

Логика работы следующая: сначала определяется место, куда будет записан файл, если такой файл уже есть в Drupal, то повторно его копировать не будем. Далее идет поиск/создание media entity. Если media элемент, указывающий на файл уже есть — вернем его ID, если нет, то создаём и получаем ID нового media entity.

Пример использования:

Написать комментарий

Мало букафф? Читайте есчо !

Подготовить библиотеки требуемые модулем webform

Март 21, 2024 г.

Webform объявляет множество библиотек, которые может использовать в webform.libraries.yml. Но устанавливать их предлагается так или иначе самостоятельно, т.к. их наличие ожидается в папке /libraries. Использование merge плагина Помимо описания ...

Читать

Как подставить файл-источник при запуске миграции из CSV файла

Март 4, 2024 г.

При работе с migration API в друпал, в документации предполагается, что вы задаёте файл в секции source как значение path. (Подразумевается, что вы используете модуль migrate_source_csv). Хотелось бы делать это через интерфейс, а не конфигурационные ...

Читать

 

Комментарии к «Миграция картинки по URL в Media поле (Drupal)»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: