Миграция картинки по 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.

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

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

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

Подключение своих стилей для CKEditor 5 в Drupal

Февраль 20, 2024 г.

Чтобы добавить в редактор свои стили, обычно следуют гайду, который реализует hook mymodule_library_info_alter. При создании своих модулей для CKE5/D10, я так же пользовался данной статьей из документации. Но проблема была в том, что тот модуль, ...

Читать

Чем заменить drupal_mkdir() в Drupal 10

Февраль 22, 2024 г.

В Drupal 10 множество функций работы с файловой системой было собрано в сервис file_system. В том числе и drupal_mkdir была перенесена туда. В общем случае это выглядит для D10 вот так: [crayon-67e4b8fd466a1526692264/]

Читать

 

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

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



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