From 01bb96feb3604d2ce63959b5154cef22ab39d506 Mon Sep 17 00:00:00 2001 From: AstonVictor <victor93g@gmail.com> Date: Thu, 17 Apr 2025 11:00:14 +0300 Subject: [PATCH 1/3] Issue #2876574 - Support menu links --- config/install/simplify.global.yml | 1 + config/schema/simplify.schema.yml | 6 ++++ simplify.module | 48 ++++++++++++++++++++++++++++++ src/Form/SimplifyAdminForm.php | 18 +++++++++++ 4 files changed, 73 insertions(+) diff --git a/config/install/simplify.global.yml b/config/install/simplify.global.yml index d7b3d1c..9d99f14 100644 --- a/config/install/simplify.global.yml +++ b/config/install/simplify.global.yml @@ -4,5 +4,6 @@ simplify_users_global: [] simplify_comments_global: [] simplify_eck_global: [] simplify_taxonomies_global: [] +simplify_menu_links_global: [] simplify_blocks_global: [] simplify_profiles_global: [] diff --git a/config/schema/simplify.schema.yml b/config/schema/simplify.schema.yml index 1cc1633..e1c0a86 100644 --- a/config/schema/simplify.schema.yml +++ b/config/schema/simplify.schema.yml @@ -35,6 +35,12 @@ simplify.global: sequence: type: string label: 'Taxonomy setting' + simplify_menu_links_global: + type: sequence + label: 'Menu links settings' + sequence: + type: string + label: 'Menu link setting' simplify_blocks_global: type: sequence label: 'Blocks settings' diff --git a/simplify.module b/simplify.module index 1ca6d20..355b0d5 100644 --- a/simplify.module +++ b/simplify.module @@ -289,6 +289,29 @@ function simplify_form_taxonomy_term_form_alter(&$form, FormStateInterface $form simplify_hide_fields($fields, $form); } +/** + * Implements hook_form_FORM_ID_alter() for menu_link_content_form. + * + * Alters the menu_link_edit form by organizing form elements into different + * 'details' sections. + */ +function simplify_form_menu_link_edit_alter(&$form, FormStateInterface $form_state) { + simplify_form_menu_link_content_form_alter($form, $form_state); +} + +/** + * Implements hook_form_BASE_FORM_ID_alter() for menu_link_content_form(). + * + * Overrides the menu link creation form to hide elements depending on settings. + */ +function simplify_form_menu_link_content_form_alter(&$form, FormStateInterface $form_state) { + // Get array of fields to hide. + $fields = _simplify_get_config_value('simplify_menu_links_global'); + + // Hide fields. + simplify_hide_fields($fields, $form); +} + /** * Implements hook_form_FORM_ID_alter() for block_add_block_form(). * @@ -512,6 +535,13 @@ function simplify_get_fields($type) { } break; + // Menu links. + case 'menu_links': + $fields['menu_parent'] = t('Parent link'); + $fields['menu_link_description'] = t('Description'); + $fields['menu_link_display_settings'] = t('Display settings'); + break; + // Blocks. case 'blocks': // Drupal core: @@ -602,6 +632,24 @@ function simplify_hide_field(string $field, array &$form) { $form['revision_information']['#attributes']['class'][] = 'visually-hidden'; break; + // Menu parent. + case 'menu_parent': + $form['menu_parent']['#attributes']['class'][] = 'visually-hidden'; + $form['menu_parent']['#group'] = ''; + break; + + // Menu description. + case 'menu_link_description': + $form['menu_link_description']['#attributes']['class'][] = 'visually-hidden'; + $form['menu_link_description']['#group'] = ''; + break; + + // Menu dsiplay settings. + case 'menu_link_display_settings': + $form['menu_link_display_settings']['#attributes']['class'][] = 'visually-hidden'; + $form['menu_link_display_settings']['#group'] = ''; + break; + default: $form[$field]['#attributes']['class'][] = 'visually-hidden'; } diff --git a/src/Form/SimplifyAdminForm.php b/src/Form/SimplifyAdminForm.php index 7c68287..6a1b084 100644 --- a/src/Form/SimplifyAdminForm.php +++ b/src/Form/SimplifyAdminForm.php @@ -134,6 +134,22 @@ class SimplifyAdminForm extends ConfigFormBase { ]; } + // Menu links. + if ($this->moduleHandler->moduleExists('menu_link_content')) { + $form['menu'] = [ + '#type' => 'details', + '#title' => $this->t('Menu link'), + '#description' => $this->t("These fields will be hidden from <em>all</em> menu link forms."), + '#open' => TRUE, + ]; + $form['menu']['simplify_menu_links_global'] = [ + '#type' => 'checkboxes', + '#title' => $this->t('Simplify the following options'), + '#options' => simplify_get_fields('menu_links'), + '#default_value' => _simplify_get_config_value('simplify_menu_links_global'), + ]; + } + // Blocks. if ($this->moduleHandler->moduleExists('block')) { $form['blocks'] = [ @@ -191,6 +207,8 @@ class SimplifyAdminForm extends ConfigFormBase { $this->getFormValue($form_state, 'simplify_eck_global')))) ->set('simplify_taxonomies_global', array_keys(array_filter( $this->getFormValue($form_state, 'simplify_taxonomies_global')))) + ->set('simplify_menu_links_global', array_keys(array_filter( + $this->getFormValue($form_state, 'simplify_menu_links_global')))) ->set('simplify_blocks_global', array_keys(array_filter( $this->getFormValue($form_state, 'simplify_blocks_global')))) ->set('simplify_profiles_global', array_keys(array_filter( -- GitLab From 005b75d963690e6f08219ef7ab3ab2dec6ad097a Mon Sep 17 00:00:00 2001 From: AstonVictor <victor93g@gmail.com> Date: Thu, 17 Apr 2025 11:18:40 +0300 Subject: [PATCH 2/3] Issue #2876574 - Support menu links --- simplify.module | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/simplify.module b/simplify.module index 355b0d5..efccf0a 100644 --- a/simplify.module +++ b/simplify.module @@ -305,11 +305,20 @@ function simplify_form_menu_link_edit_alter(&$form, FormStateInterface $form_sta * Overrides the menu link creation form to hide elements depending on settings. */ function simplify_form_menu_link_content_form_alter(&$form, FormStateInterface $form_state) { + $form['#after_build'][] = 'simplify_form_menu_link_content_form_after_build'; +} + +/** + * Helper to hide fields after executing theme hooks. + */ +function simplify_form_menu_link_content_form_after_build(array $form) { // Get array of fields to hide. $fields = _simplify_get_config_value('simplify_menu_links_global'); // Hide fields. simplify_hide_fields($fields, $form); + + return $form; } /** @@ -634,19 +643,19 @@ function simplify_hide_field(string $field, array &$form) { // Menu parent. case 'menu_parent': - $form['menu_parent']['#attributes']['class'][] = 'visually-hidden'; + $form['menu_parent']['#wrapper_attributes']['class'][] = 'visually-hidden'; $form['menu_parent']['#group'] = ''; break; // Menu description. case 'menu_link_description': - $form['menu_link_description']['#attributes']['class'][] = 'visually-hidden'; + $form['menu_link_description']['#wrapper_attributes']['class'][] = 'visually-hidden'; $form['menu_link_description']['#group'] = ''; break; // Menu dsiplay settings. case 'menu_link_display_settings': - $form['menu_link_display_settings']['#attributes']['class'][] = 'visually-hidden'; + $form['menu_link_display_settings']['#wrapper_attributes']['class'][] = 'visually-hidden'; $form['menu_link_display_settings']['#group'] = ''; break; -- GitLab From 1c62108d4140a218299702d2a3f322770040fd73 Mon Sep 17 00:00:00 2001 From: AstonVictor <victor93g@gmail.com> Date: Thu, 17 Apr 2025 12:50:20 +0300 Subject: [PATCH 3/3] Issue #2876574 - Update comment --- simplify.module | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/simplify.module b/simplify.module index efccf0a..69139b1 100644 --- a/simplify.module +++ b/simplify.module @@ -290,10 +290,7 @@ function simplify_form_taxonomy_term_form_alter(&$form, FormStateInterface $form } /** - * Implements hook_form_FORM_ID_alter() for menu_link_content_form. - * - * Alters the menu_link_edit form by organizing form elements into different - * 'details' sections. + * Implements hook_form_FORM_ID_alter() for menu_link_content_form(). */ function simplify_form_menu_link_edit_alter(&$form, FormStateInterface $form_state) { simplify_form_menu_link_content_form_alter($form, $form_state); -- GitLab