From 51c0f65a03daca1754aad1d1ba9915f5c5792289 Mon Sep 17 00:00:00 2001 From: Andy Broomfield Date: Mon, 24 Nov 2025 13:01:14 +0000 Subject: [PATCH 1/7] Rename menu ID to use hyphens --- config/install/system.menu.localgov_services_menu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/install/system.menu.localgov_services_menu.yml b/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 From 6e9a871216d4b4ffe4fba661958fc13ee96d378b Mon Sep 17 00:00:00 2001 From: Andy Broomfield Date: Mon, 24 Nov 2025 13:07:07 +0000 Subject: [PATCH 2/7] Rename system.menu.localgov_services_menu.yml to system.menu.localgov-services-menu.yml --- ...v_services_menu.yml => system.menu.localgov-services-menu.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename config/install/{system.menu.localgov_services_menu.yml => system.menu.localgov-services-menu.yml} (100%) diff --git a/config/install/system.menu.localgov_services_menu.yml b/config/install/system.menu.localgov-services-menu.yml similarity index 100% rename from config/install/system.menu.localgov_services_menu.yml rename to config/install/system.menu.localgov-services-menu.yml From faee0c2c2654dfcccc8123b3ac6e2c193fa5fbb1 Mon Sep 17 00:00:00 2001 From: Andy Broomfield Date: Mon, 24 Nov 2025 14:35:11 +0000 Subject: [PATCH 3/7] Fix menu block configuration for localgov services --- config/optional/block.block.localgov_servicesmenu_base.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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' From 02708e8e4ce709c285a37913dbbd04faf7bbd418 Mon Sep 17 00:00:00 2001 From: Andy Broomfield Date: Mon, 24 Nov 2025 14:35:42 +0000 Subject: [PATCH 4/7] Fix menu block configuration for localgov services --- .../optional/block.block.localgov_servicesmenu_scarfolk.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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' From 0396f43e04282b1d96f31238c7352d3fde3a8741 Mon Sep 17 00:00:00 2001 From: Andy Broomfield Date: Tue, 25 Nov 2025 11:04:26 +0000 Subject: [PATCH 5/7] Add update hook to create hypen seperated services menu and move menu link content This will - Create the new menu, `localgov-services-menu` - Update menu_link_content entities (user created menu items) to set the menu name to `localgov-services-menu` from `localgov_services_menu` - Delete the old menu `localgov_services_menu` --- localgov_services.install | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 localgov_services.install diff --git a/localgov_services.install b/localgov_services.install new file mode 100644 index 0000000..503fe31 --- /dev/null +++ b/localgov_services.install @@ -0,0 +1,37 @@ +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) { + $item->set('menu_name', 'localgov-services-menu')->save(); + } + + // Delete the old underscores seperated localgov_services_menu. + \Drupal::entityTypeManager()->getStorage('menu')->load('localgov_services_menu')->delete(); + +} \ No newline at end of file From e8dc732c3e1762d3cf55818688e6e1c5db046e85 Mon Sep 17 00:00:00 2001 From: Finn Date: Tue, 25 Nov 2025 11:57:38 +0000 Subject: [PATCH 6/7] Fix coding standards. --- localgov_services.install | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/localgov_services.install b/localgov_services.install index 503fe31..bd0a4e2 100644 --- a/localgov_services.install +++ b/localgov_services.install @@ -11,7 +11,7 @@ function localgov_services_update_10001(): void { // Create the new hyphen seperated localgov-services-menu. - $menu = \Drupal::entityTypeManager()->getStorage('menu') + \Drupal::entityTypeManager()->getStorage('menu') ->create([ 'langcode' => 'en', 'status' => TRUE, @@ -27,11 +27,11 @@ function localgov_services_update_10001(): void { ]); // Update current menu link content items to point to the new menu. - foreach($items as $item) { + foreach ($items as $item) { $item->set('menu_name', 'localgov-services-menu')->save(); } // Delete the old underscores seperated localgov_services_menu. \Drupal::entityTypeManager()->getStorage('menu')->load('localgov_services_menu')->delete(); -} \ No newline at end of file +} From 4d2107c8cd893848fa6106ee1fca81005c78cb9e Mon Sep 17 00:00:00 2001 From: Andy Broomfield Date: Tue, 25 Nov 2025 12:40:32 +0000 Subject: [PATCH 7/7] Relabel the old (broken) localgov_services_menu instead of deleting it In order to prevent existing sites breaking - Check if an existing `localgov-services-menu` exists, and abort if so. - Duplicate menu content items instead of moving them. - Relabel the existing `localgov_services_menu` indicating it should be deleted once the blocks have been replaced. --- localgov_services.install | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/localgov_services.install b/localgov_services.install index bd0a4e2..abb688f 100644 --- a/localgov_services.install +++ b/localgov_services.install @@ -10,6 +10,12 @@ */ function localgov_services_update_10001(): void { + // Check if an existing new menu exists, assume it was renamed already. + $existing = \Drupal::entityTypeManager()->getStorage('menu')->load('localgov-services-menu'); + if ($existing) { + return; + } + // Create the new hyphen seperated localgov-services-menu. \Drupal::entityTypeManager()->getStorage('menu') ->create([ @@ -28,10 +34,16 @@ function localgov_services_update_10001(): void { // Update current menu link content items to point to the new menu. foreach ($items as $item) { - $item->set('menu_name', 'localgov-services-menu')->save(); + $new_item = $item->createDuplicate(); + $new_item->set('menu_name', 'localgov-services-menu')->save(); } - // Delete the old underscores seperated localgov_services_menu. - \Drupal::entityTypeManager()->getStorage('menu')->load('localgov_services_menu')->delete(); + // 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(); }