У меня есть миграция, которая создает узлы из файла CSV. Это не экспорт с другого сайта Drupal. Он работает, как и ожидалось, пока я не попытаюсь добавить перенесенные узлы в указанный пункт меню.
В следующем файле миграции публикации_создать_узлы успешно бежит. Я могу создать пункты меню для каждого узла следующим образом.
процесс:
имя_меню:
плагин: default_value
default_value: 'основной'
нид:
плагин: migration_lookup
миграция:
- публикации_создать_узлы
исходные_идентификаторы:
публикации_создать_узлы:
- я бы
'ссылка/ури':
плагин: concat
источник:
- константы/путь
- '@нид'
название: название
родитель:
плагин: menu_link_parent
источник:
- 462
- 'главный'
- '/ публикации'
внешний:
плагин: default_value
значение_по умолчанию: 0
расширено:
плагин: default_value
значение_по умолчанию: 0
включено:
плагин: default_value
значение_по умолчанию: 1
код языка:
плагин: default_value
default_value: 'ru'
Все эти узлы добавляются на верхний уровень главного меню.
родитель:
плагин: menu_link_parent
источник:
- 462
- 'главный'
- '/ публикации'
Мне нужны следующие состояния:
- плед
- имя_меню
- parent_link_path
Я получил значение plid из базы данных.
SELECT UUID FROM menu_link_content WHERE id IN (SELECT id FROM menu_link_content_data WHERE title = "publications");
Затем я использовал результат этого в следующем SQL-запросе.
ВЫБЕРИТЕ mlid FROM menu_tree WHERE id =('menu_link_content:e7e5dcf2-110a-41ca-928d-5ff353a311fd');
Значение plid, ожидаемое при миграции, исходит из источника, а не из пункта назначения. Поскольку у меня нет исходного пункта меню, я не знаю, как добавить ссылку на конкретный родительский элемент меню.
В идеале я хотел бы иметь целевое значение mlid как часть данных CSV, чтобы назначать каждый сгенерированный узел существующему элементу родительского меню.В противном случае я собираюсь иметь около 600 узлов на верхнем уровне главного меню и выяснить, где они находятся.