0

I have a migration that creates nodes from a CSV file. This isn't an export from another Drupal site. It works as expected until I try to add the migrated nodes to a specified menu item.

In the following migration file, publications_create_nodes successfully runs. I can create the menu items for each node with the following.

process:
  menu_name:
    plugin: default_value
    default_value: 'main'
  nid:
    plugin: migration_lookup
    migration:
      - publications_create_nodes
    source_ids:
      publications_create_nodes:
        - id
  'link/uri':
    plugin: concat
    source:
      - constants/path
      - '@nid'
  title: title
  parent:
    plugin: menu_link_parent
    source:
      - 462
      - 'main'
      - '/publications'
  external:
    plugin: default_value
    default_value: 0
  expanded:
    plugin: default_value
    default_value: 0
  enabled:
    plugin: default_value
    default_value: 1
  langcode:
    plugin: default_value
    default_value: 'en'

All these nodes are added to the top level of the main menu.

  parent:
    plugin: menu_link_parent
    source:
      - 462
      - 'main'
      - '/publications'

The states I require are:

  • plid
  • menu_name
  • parent_link_path

I got the plid value from the database.

SELECT UUID FROM menu_link_content WHERE id IN (SELECT id FROM menu_link_content_data WHERE title = "publications");

I then used the result from that in the following SQL query.

SELECT mlid FROM menu_tree WHERE id =('menu_link_content:e7e5dcf2-110a-41ca-928d-5ff353a311fd');

The plid value expected in the migration is from source, not destination. As I don't have a source menu item, I am not sure how to add to the link to a specific menu parent.

Ideally, I would like to have the destination mlid value as part of the CSV data to assign each generated node to an existing parent menu item. Otherwise, I'm going to have about 600 nodes at the top level of the main menu and to figure out where they belong.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.