diff --git a/config/install/system.menu.localgov_services_menu.yml b/config/install/system.menu.localgov-services-menu.yml similarity index 80% rename from config/install/system.menu.localgov_services_menu.yml rename to config/install/system.menu.localgov-services-menu.yml index 5e1cd92..fe202cb 100644 --- a/config/install/system.menu.localgov_services_menu.yml +++ b/config/install/system.menu.localgov-services-menu.yml @@ -1,7 +1,7 @@ langcode: en status: true dependencies: { } -id: localgov_services_menu +id: localgov-services-menu label: 'Services menu' description: 'Service links' locked: false diff --git a/config/optional/block.block.localgov_servicesmenu_base.yml b/config/optional/block.block.localgov_servicesmenu_base.yml index db18121..e740fa2 100644 --- a/config/optional/block.block.localgov_servicesmenu_base.yml +++ b/config/optional/block.block.localgov_servicesmenu_base.yml @@ -2,7 +2,7 @@ langcode: en status: true dependencies: config: - - system.menu.localgov_services_menu + - system.menu.localgov-services-menu module: - system theme: @@ -12,9 +12,9 @@ theme: localgov_base region: secondary_menu weight: -6 provider: null -plugin: 'system_menu_block:localgov_services_menu' +plugin: 'system_menu_block:localgov-services-menu' settings: - id: 'system_menu_block:localgov_services_menu' + id: 'system_menu_block:localgov-services-menu' label: 'Services menu' provider: system label_display: '0' diff --git a/config/optional/block.block.localgov_servicesmenu_scarfolk.yml b/config/optional/block.block.localgov_servicesmenu_scarfolk.yml index 5a17ffc..2764ebc 100644 --- a/config/optional/block.block.localgov_servicesmenu_scarfolk.yml +++ b/config/optional/block.block.localgov_servicesmenu_scarfolk.yml @@ -2,7 +2,7 @@ langcode: en status: true dependencies: config: - - system.menu.localgov_services_menu + - system.menu.localgov-services-menu module: - system theme: @@ -12,9 +12,9 @@ theme: localgov_scarfolk region: secondary_menu weight: -6 provider: null -plugin: 'system_menu_block:localgov_services_menu' +plugin: 'system_menu_block:localgov-services-menu' settings: - id: 'system_menu_block:localgov_services_menu' + id: 'system_menu_block:localgov-services-menu' label: 'Services menu' provider: system label_display: '0' diff --git a/localgov_services.install b/localgov_services.install new file mode 100644 index 0000000..abb688f --- /dev/null +++ b/localgov_services.install @@ -0,0 +1,49 @@ +getStorage('menu')->load('localgov-services-menu'); + if ($existing) { + return; + } + + // Create the new hyphen seperated localgov-services-menu. + \Drupal::entityTypeManager()->getStorage('menu') + ->create([ + 'langcode' => 'en', + 'status' => TRUE, + 'id' => 'localgov-services-menu', + 'label' => 'Services menu', + 'description' => 'Service links', + 'locked' => FALSE, + ])->save(); + + // Load existing menu link content items. + $items = \Drupal::entityTypeManager()->getStorage('menu_link_content')->loadByProperties([ + 'menu_name' => 'localgov_services_menu', + ]); + + // Update current menu link content items to point to the new menu. + foreach ($items as $item) { + $new_item = $item->createDuplicate(); + $new_item->set('menu_name', 'localgov-services-menu')->save(); + } + + // Label as the old underscores seperated localgov_services_menu. + \Drupal::entityTypeManager() + ->getStorage('menu') + ->load('localgov_services_menu') + ->set('label', 'Services menu (Old)') + ->set('description', 'Old Service links with broken machine name. Delete this menu once you replace your services menu blocks.') + ->save(); + +}