From 7155e01f77e58241558259307b52c192d9db3f58 Mon Sep 17 00:00:00 2001 From: Dries Date: Fri, 3 Aug 2012 13:09:51 -0400 Subject: [PATCH] - Patch #1697170 by tobiasb, nick_schuch, adamdicarlo, dagmar: convert menu_configure() to new configuration system. --- core/includes/menu.inc | 17 +++++++++---- core/modules/menu/menu.admin.inc | 24 +++++++++++++++---- core/modules/menu/menu.install | 11 +++++++++ .../config/update_script_test.settings.yml | 1 + .../modules/update/config/update.settings.yml | 10 ++++++++ .../config/update_test.settings.yml | 3 +++ 6 files changed, 57 insertions(+), 9 deletions(-) create mode 100644 core/modules/system/tests/modules/update_script_test/config/update_script_test.settings.yml create mode 100644 core/modules/update/config/update.settings.yml create mode 100644 core/modules/update/tests/modules/update_test/config/update_test.settings.yml diff --git a/core/includes/menu.inc b/core/includes/menu.inc index 1dad781991..3c42f59a12 100644 --- a/core/includes/menu.inc +++ b/core/includes/menu.inc @@ -1756,21 +1756,30 @@ function menu_list_system_menus() { * Return an array of links to be rendered as the Main menu. */ function menu_main_menu() { - return menu_navigation_links(variable_get('menu_main_links_source', 'main-menu')); + $config = config('menu.settings'); + $menu_enabled = module_exists('menu'); + // When menu module is not enabled, we need a hardcoded default value. + $main_links_source = $menu_enabled ? $config->get('main_links') : 'main-menu'; + return menu_navigation_links($main_links_source); } /** * Return an array of links to be rendered as the Secondary links. */ function menu_secondary_menu() { + $config = config('menu.settings'); + $menu_enabled = module_exists('menu'); + // When menu module is not enabled, we need a hardcoded default value. + $main_links_source = $menu_enabled ? $config->get('main_links') : 'main-menu'; + $secondary_links_source = $menu_enabled ? $config->get('secondary_links') : 'user-menu'; // If the secondary menu source is set as the primary menu, we display the // second level of the primary menu. - if (variable_get('menu_secondary_links_source', 'user-menu') == variable_get('menu_main_links_source', 'main-menu')) { - return menu_navigation_links(variable_get('menu_main_links_source', 'main-menu'), 1); + if ($secondary_links_source == $main_links_source) { + return menu_navigation_links($main_links_source, 1); } else { - return menu_navigation_links(variable_get('menu_secondary_links_source', 'user-menu'), 0); + return menu_navigation_links($secondary_links_source, 0); } } diff --git a/core/modules/menu/menu.admin.inc b/core/modules/menu/menu.admin.inc index a9ba073d4e..aa7c005df6 100644 --- a/core/modules/menu/menu.admin.inc +++ b/core/modules/menu/menu.admin.inc @@ -678,8 +678,12 @@ function menu_reset_item_confirm_submit($form, &$form_state) { /** * Menu callback; Build the form presenting menu configuration options. + * + * @ingroup forms + * @see menu_configure_submit() */ -function menu_configure() { +function menu_configure($form, &$form_state) { + $config = config('menu.settings'); $form['intro'] = array( '#type' => 'item', '#markup' => t('The menu module allows on-the-fly creation of menu links in the content authoring forms. To configure these settings for a particular content type, visit the Content types page, click the edit link for the content type, and go to the Menu settings section.', array('@content-types' => url('admin/structure/types'))), @@ -687,11 +691,11 @@ function menu_configure() { $menu_options = menu_get_menus(); - $main = variable_get('menu_main_links_source', 'main-menu'); + $main = $config->get('main_links'); $form['menu_main_links_source'] = array( '#type' => 'select', '#title' => t('Source for the Main links'), - '#default_value' => variable_get('menu_main_links_source', 'main-menu'), + '#default_value' => $main, '#empty_option' => t('No Main links'), '#options' => $menu_options, '#tree' => FALSE, @@ -701,12 +705,22 @@ function menu_configure() { $form['menu_secondary_links_source'] = array( '#type' => 'select', '#title' => t('Source for the Secondary links'), - '#default_value' => variable_get('menu_secondary_links_source', 'user-menu'), + '#default_value' => $config->get('secondary_links'), '#empty_option' => t('No Secondary links'), '#options' => $menu_options, '#tree' => FALSE, '#description' => t('Select the source for the Secondary links. An advanced option allows you to use the same source for both Main links (currently %main) and Secondary links: if your source menu has two levels of hierarchy, the top level menu links will appear in the Main links, and the children of the active link will appear in the Secondary links.', array('%main' => $main ? $menu_options[$main] : t('none'))), ); - return system_settings_form($form); + return system_config_form($form, $form_state); +} + +/** + * Form submission handler for menu_configure(). + */ +function menu_configure_submit($form, &$form_state) { + config('menu.settings') + ->set('main_links', $form_state['values']['menu_main_links_source']) + ->set('secondary_links', $form_state['values']['menu_secondary_links_source']) + ->save(); } diff --git a/core/modules/menu/menu.install b/core/modules/menu/menu.install index d876017af6..41cbeaf8b7 100644 --- a/core/modules/menu/menu.install +++ b/core/modules/menu/menu.install @@ -69,3 +69,14 @@ function menu_uninstall() { menu_router_rebuild(); } +/** + * Moves menu settings from variables to config. + * + * @ingroup config_upgrade + */ +function menu_update_8000() { + update_variables_to_config('menu.settings', array( + 'menu_main_links_source' => 'main_links', + 'menu_secondary_links_source' => 'secondary_links', + )); +} diff --git a/core/modules/system/tests/modules/update_script_test/config/update_script_test.settings.yml b/core/modules/system/tests/modules/update_script_test/config/update_script_test.settings.yml new file mode 100644 index 0000000000..e0be69e06a --- /dev/null +++ b/core/modules/system/tests/modules/update_script_test/config/update_script_test.settings.yml @@ -0,0 +1 @@ +requirement_type: '0' diff --git a/core/modules/update/config/update.settings.yml b/core/modules/update/config/update.settings.yml new file mode 100644 index 0000000000..1caf7455c8 --- /dev/null +++ b/core/modules/update/config/update.settings.yml @@ -0,0 +1,10 @@ +check: + disabled_extensions: '0' + interval_days: '1' +fetch: + url: '' + max_attempts: '2' + timeout: '5' +notification: + emails: [] + threshold: '0' diff --git a/core/modules/update/tests/modules/update_test/config/update_test.settings.yml b/core/modules/update/tests/modules/update_test/config/update_test.settings.yml new file mode 100644 index 0000000000..a52338adb7 --- /dev/null +++ b/core/modules/update/tests/modules/update_test/config/update_test.settings.yml @@ -0,0 +1,3 @@ +system_info: [] +update_status: [] +xml_map: '0' -- GitLab