commit 0dd784464819e6e8c34a38fd46ef22e2772a527b
Author: Antoine Beaupre <anarcat@shell.koumbit.net>
Date:   Fri Dec 4 20:52:07 2009 -0500

    #580868 - split configuration and menus links

diff --git includes/install.inc includes/install.inc
index bc79d5e..d4ffc5a 100644
--- includes/install.inc
+++ includes/install.inc
@@ -585,7 +585,7 @@ function drupal_install_modules($module_list = array(), $disable_modules_install
  *
  * Used during installation to install modules one at a time and then
  * enable them, or to install a number of modules at one time
- * from admin/config/modules.
+ * from admin/modules.
  *
  * @param $module
  *   The machine name of the module to install.
diff --git modules/contact/contact.module modules/contact/contact.module
index 164f028..260af6e 100644
--- modules/contact/contact.module
+++ modules/contact/contact.module
@@ -27,7 +27,7 @@ function contact_help($path, $arg) {
       return $output;
     case 'admin/structure/contact':
       $output = '<p>' . t('Add one or more categories to set up your site-wide <a href="@form">contact form</a>. You can <a href="@settings">customize the information above the contact form</a> on the settings page.', array('@settings' => url('admin/structure/contact/settings'), '@form' => url('contact'))) . '</p>';      if (!module_exists('menu')) {
-        $menu_note = t('The menu item can be configured only if the menu module is <a href="@modules-page">enabled</a>.', array('@modules-page' => url('admin/config/modules')));
+        $menu_note = t('The menu item can be configured only if the menu module is <a href="@modules-page">enabled</a>.', array('@modules-page' => url('admin/modules')));
       }
       else {
         $menu_note = '';
diff --git modules/field/field.module modules/field/field.module
index fc37ead..3d37c5a 100644
--- modules/field/field.module
+++ modules/field/field.module
@@ -147,7 +147,7 @@ function field_help($path, $arg) {
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Enabling field types') . '</dt>';
-      $output .= '<dd>' . t('The Field module provides the infrastructure for fields and field attachment, but the field types themselves are provided by additional modules. Some of the modules are required; the optional modules can be enabled from the <a href="@modules">Modules administration page</a>. Drupal core includes the following field type modules:', array('@modules' => url('admin/config/modules')));
+      $output .= '<dd>' . t('The Field module provides the infrastructure for fields and field attachment, but the field types themselves are provided by additional modules. Some of the modules are required; the optional modules can be enabled from the <a href="@modules">Modules administration page</a>. Drupal core includes the following field type modules:', array('@modules' => url('admin/modules')));
       $output .= '<dl>';
       $output .= '<dt>' . t('Number (required)') . '</dt>';
       $output .= '<dd>' . t('Fields for storing numbers, in integer, decimal or floating point form. You may define a set of allowed inputs, or specify an allowable range of values. Several common formats for displaying numeric data are available.') . '</dd>';
diff --git modules/help/help.module modules/help/help.module
index 7ac51cc..804dec6 100644
--- modules/help/help.module
+++ modules/help/help.module
@@ -41,7 +41,7 @@ function help_help($path, $arg) {
       $output = '<p>' . t('Please follow these steps to set up and start using your website:') . '</p>';
       $output .= '<ol>';
       $output .= '<li>' . t('<strong>Configure your website</strong> Once logged in, visit the <a href="@admin">administration section</a>, where you can <a href="@config">customize and configure</a> all aspects of your website.', array('@admin' => url('admin'), '@config' => url('admin/config'))) . '</li>';
-      $output .= '<li>' . t('<strong>Enable additional functionality</strong> Next, visit the <a href="@modules">module list</a> and enable features which suit your specific needs. You can find additional modules in the <a href="@download_modules">Drupal modules download section</a>.', array('@modules' => url('admin/config/modules'), '@download_modules' => 'http://drupal.org/project/modules')) . '</li>';
+      $output .= '<li>' . t('<strong>Enable additional functionality</strong> Next, visit the <a href="@modules">module list</a> and enable features which suit your specific needs. You can find additional modules in the <a href="@download_modules">Drupal modules download section</a>.', array('@modules' => url('admin/modules'), '@download_modules' => 'http://drupal.org/project/modules')) . '</li>';
       $output .= '<li>' . t('<strong>Customize your website design</strong> To change the "look and feel" of your website, visit the <a href="@themes">themes section</a>. You may choose from one of the included themes or download additional themes from the <a href="@download_themes">Drupal themes download section</a>.', array('@themes' => url('admin/appearance'), '@download_themes' => 'http://drupal.org/project/themes')) . '</li>';
       $output .= '<li>' . t('<strong>Start posting content</strong> Finally, you can <a href="@content">add new content</a> for your website.', array('@content' => url('node/add'))) . '</li>';
       $output .= '</ol>';
diff --git modules/system/system.admin.inc modules/system/system.admin.inc
index b29256a..d4cdd37 100644
--- modules/system/system.admin.inc
+++ modules/system/system.admin.inc
@@ -866,7 +866,7 @@ function system_modules($form, $form_state = array()) {
     '#type' => 'submit',
     '#value' => t('Save configuration'),
   );
-  $form['#action'] = url('admin/config/modules/list/confirm');
+  $form['#action'] = url('admin/modules/list/confirm');
 
   return $form;
 }
@@ -999,7 +999,7 @@ function system_modules_confirm_form($modules, $storage) {
     $form = confirm_form(
       $form,
       t('Some required modules must be enabled'),
-      'admin/config/modules',
+      'admin/modules',
       t('Would you like to continue with enabling the above?'),
       t('Continue'),
       t('Cancel'));
@@ -1148,7 +1148,7 @@ function system_modules_submit($form, &$form_state) {
   drupal_clear_css_cache();
   drupal_clear_js_cache();
 
-  $form_state['redirect'] = 'admin/config/modules';
+  $form_state['redirect'] = 'admin/modules';
 
   // Notify locale module about module changes, so translations can be
   // imported. This might start a batch, and only return to the redirect
@@ -1211,7 +1211,7 @@ function system_modules_uninstall($form, $form_state = NULL) {
       '#type' => 'submit',
       '#value' => t('Uninstall'),
     );
-    $form['#action'] = url('admin/config/modules/uninstall/confirm');
+    $form['#action'] = url('admin/modules/uninstall/confirm');
   }
   else {
     $form['modules'] = array();
@@ -1252,7 +1252,7 @@ function system_modules_uninstall_confirm_form($storage) {
     $form = confirm_form(
       $form,
       t('Confirm uninstall'),
-      'admin/config/modules/uninstall',
+      'admin/modules/uninstall',
       t('Would you like to continue with uninstalling the above?'),
       t('Uninstall'),
       t('Cancel'));
@@ -1267,7 +1267,7 @@ function system_modules_uninstall_validate($form, &$form_state) {
   // Form submitted, but no modules selected.
   if (!count(array_filter($form_state['values']['uninstall']))) {
     drupal_set_message(t('No modules selected.'), 'error');
-    drupal_goto('admin/config/modules/uninstall');
+    drupal_goto('admin/modules/uninstall');
   }
 }
 
@@ -1284,7 +1284,7 @@ function system_modules_uninstall_submit($form, &$form_state) {
     drupal_uninstall_modules($modules);
     drupal_set_message(t('The selected modules have been uninstalled.'));
 
-    $form_state['redirect'] = 'admin/config/modules/uninstall';
+    $form_state['redirect'] = 'admin/modules/uninstall';
   }
   else {
     $form_state['storage'] = $form_state['values'];
diff --git modules/system/system.module modules/system/system.module
index 56e7fb4..9ee5adf 100644
--- modules/system/system.module
+++ modules/system/system.module
@@ -70,7 +70,7 @@ function system_help($path, $arg) {
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Managing modules') . '</dt>';
-      $output .= '<dd>' . t('The System module allows users with the appropriate permissions to enable and disable modules on the <a href="@modules">Modules administration page</a>. Drupal comes with a number of core modules, and each module provides a discrete set of features and may be enabled or disabled depending on the needs of the site. Many additional modules contributed by members of the Drupal community are available for download at the <a href="@drupal-modules">Drupal.org module page</a>.', array('@modules' => url('admin/config/modules'), '@drupal-modules' => 'http://drupal.org/project/modules')) . '</dd>';
+      $output .= '<dd>' . t('The System module allows users with the appropriate permissions to enable and disable modules on the <a href="@modules">Modules administration page</a>. Drupal comes with a number of core modules, and each module provides a discrete set of features and may be enabled or disabled depending on the needs of the site. Many additional modules contributed by members of the Drupal community are available for download at the <a href="@drupal-modules">Drupal.org module page</a>.', array('@modules' => url('admin/modules'), '@drupal-modules' => 'http://drupal.org/project/modules')) . '</dd>';
       $output .= '<dt>' . t('Managing themes') . '</dt>';
       $output .= '<dd>' . t('The System module allows users with the appropriate permissions to enable and disable themes on the <a href="@themes">Appearance administration page</a>. Themes determine the design and presentation of your site. Drupal comes packaged with several core themes, and additional contributed themes are available at the <a href="@drupal-themes">Drupal.org theme page</a>.', array('@themes' => url('admin/appearance'), '@drupal-themes' => 'http://drupal.org/project/themes')) . '</dd>';
       $output .= '<dt>' . t('Managing caching') . '</dt>';
@@ -94,7 +94,7 @@ function system_help($path, $arg) {
       return '<p>' . t('These options control the display settings for the <code>%template</code> theme. When your site is displayed using this theme, these settings will be used. By clicking "Reset to defaults," you can choose to use the <a href="@global">global settings</a> for this theme.', array('%template' => $theme, '@global' => url('admin/appearance/settings'))) . '</p>';
     case 'admin/appearance/settings':
       return '<p>' . t('These options control the default display settings for your entire site, across all themes. Unless they have been overridden by a specific theme, these settings will be used.') . '</p>';
-    case 'admin/config/modules':
+    case 'admin/modules':
       $output = '<p>' . t('Download additional <a href="@modules">contributed modules</a> to extend Drupal\'s functionality.', array('@modules' => 'http://drupal.org/project/modules')) . '</p>';
       if (module_exists('update')) {
         if (update_manager_access()) {
@@ -108,8 +108,8 @@ function system_help($path, $arg) {
         $output .= '<p>' . t('Regularly review available updates to maintain a secure and current site. Always run the <a href="@update-php">update script</a> each time a module is updated. Enable the Update manager module to update and install modules and themes.', array('@update-php' => $base_url . '/update.php')) . '</p>';
       }
       return $output;
-    case 'admin/config/modules/uninstall':
-      return '<p>' . t('The uninstall process removes all data related to a module. To uninstall a module, you must first disable it on the main <a href="@modules">Modules page</a>. Not all modules support this feature.', array('@modules' => url('admin/config/modules'))) . '</p>';
+    case 'admin/modules/uninstall':
+      return '<p>' . t('The uninstall process removes all data related to a module. To uninstall a module, you must first disable it on the main <a href="@modules">Modules page</a>. Not all modules support this feature.', array('@modules' => url('admin/modules'))) . '</p>';
     case 'admin/structure/block/manage':
       if ($arg[4] == 'system' && $arg[5] == 'powered-by') {
         return '<p>' . t('The <em>Powered by Drupal</em> block is an optional link to the home page of the Drupal project. While there is absolutely no requirement that sites feature this link, it may be used to show support for Drupal.') . '</p>';
@@ -651,45 +651,36 @@ function system_menu() {
 
   // Configuration and modules.
   $items['admin/config'] = array(
-    'title' => 'Configuration and modules',
-    'page callback' => 'system_admin_config_page',
-    'access arguments' => array('access administration pages'),
-    'file' => 'system.admin.inc',
-  );
-  $items['admin/config/config'] = array(
     'title' => 'Configuration',
+    'page callback' => 'system_admin_config_page',
     'access arguments' => array('administer site configuration'),
-    'type' => MENU_DEFAULT_LOCAL_TASK,
-    'weight' => -10,
     'file' => 'system.admin.inc',
   );
-  $items['admin/config/modules'] = array(
+  $items['admin/modules'] = array(
     'title' => 'Modules',
     'description' => 'Enable or disable add-on modules for your site.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('system_modules'),
     'access arguments' => array('administer modules'),
     'file' => 'system.admin.inc',
-    'type' => MENU_LOCAL_TASK,
-    'weight' => 10,
   );
-  $items['admin/config/modules/list'] = array(
+  $items['admin/modules/list'] = array(
     'title' => 'List',
     'type' => MENU_DEFAULT_LOCAL_TASK,
   );
-  $items['admin/config/modules/list/confirm'] = array(
+  $items['admin/modules/list/confirm'] = array(
     'title' => 'List',
     'access arguments' => array('administer modules'),
     'type' => MENU_CALLBACK,
   );
-  $items['admin/config/modules/uninstall'] = array(
+  $items['admin/modules/uninstall'] = array(
     'title' => 'Uninstall',
     'page arguments' => array('system_modules_uninstall'),
     'access arguments' => array('administer modules'),
     'type' => MENU_LOCAL_TASK,
     'file' => 'system.admin.inc',
   );
-  $items['admin/config/modules/uninstall/confirm'] = array(
+  $items['admin/modules/uninstall/confirm'] = array(
     'title' => 'Uninstall',
     'access arguments' => array('administer modules'),
     'type' => MENU_CALLBACK,
diff --git modules/system/system.updater.inc modules/system/system.updater.inc
index c9eddb9..b048636 100644
--- modules/system/system.updater.inc
+++ modules/system/system.updater.inc
@@ -67,7 +67,7 @@ class ModuleUpdater extends Updater implements DrupalUpdaterInterface {
 
   public function postInstallTasks() {
     return array(
-      l(t('Enable newly added modules in !project', array('!project' => $this->title)), 'admin/config/modules'),
+      l(t('Enable newly added modules in !project', array('!project' => $this->title)), 'admin/modules'),
     );
   }
 
diff --git modules/update/update.compare.inc modules/update/update.compare.inc
index be91cfa..267237d 100644
--- modules/update/update.compare.inc
+++ modules/update/update.compare.inc
@@ -728,7 +728,7 @@ function update_project_cache($cid) {
   // On certain paths, we should clear the cache and recompute the projects or
   // update status of the site to avoid presenting stale information.
   $q = $_GET['q'];
-  $paths = array('admin/config/modules', 'admin/appearance', 'admin/reports', 'admin/reports/updates', 'admin/reports/status', 'admin/reports/updates/check');
+  $paths = array('admin/modules', 'admin/appearance', 'admin/reports', 'admin/reports/updates', 'admin/reports/status', 'admin/reports/updates/check');
   if (in_array($q, $paths)) {
     _update_cache_clear($cid);
   }
diff --git modules/update/update.module modules/update/update.module
index 7c00b83..faffef5 100644
--- modules/update/update.module
+++ modules/update/update.module
@@ -80,7 +80,7 @@ function update_help($path, $arg) {
       return '<p>' . t('Here you can find information about available updates for your installed modules and themes. Note that each module or theme is part of a "project", which may or may not have the same name, and might include multiple modules or themes within it.') . '</p>';
 
     case 'admin/appearance':
-    case 'admin/config/modules':
+    case 'admin/modules':
       include_once DRUPAL_ROOT . '/includes/install.inc';
       $status = update_requirements('runtime');
       foreach (array('core', 'contrib') as $report_type) {
@@ -97,8 +97,8 @@ function update_help($path, $arg) {
 
     case 'admin/appearance/update':
     case 'admin/appearance/install':
-    case 'admin/config/modules/update':
-    case 'admin/config/modules/install':
+    case 'admin/modules/update':
+    case 'admin/modules/install':
     case 'admin/reports/updates/update':
     case 'admin/reports/updates/install':
     case 'admin/reports/updates/settings':
@@ -110,7 +110,7 @@ function update_help($path, $arg) {
     case 'admin/help#update':
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t("The Update manager module periodically checks for new versions of your site's software (including contributed modules and themes), and alerts administrators to available updates. In order to provide update information, anonymous usage statistics are sent to Drupal.org. If desired, you may disable the Update manager module from the <a href='@modules'>Module administration page</a>. For more information, see the online handbook entry for <a href='@update'>Update manager module</a>.", array('@update' => 'http://drupal.org/handbook/modules/update', '@modules' => url('admin/config/modules'))) . '</p>';
+      $output .= '<p>' . t("The Update manager module periodically checks for new versions of your site's software (including contributed modules and themes), and alerts administrators to available updates. In order to provide update information, anonymous usage statistics are sent to Drupal.org. If desired, you may disable the Update manager module from the <a href='@modules'>Module administration page</a>. For more information, see the online handbook entry for <a href='@update'>Update manager module</a>.", array('@update' => 'http://drupal.org/handbook/modules/update', '@modules' => url('admin/modules'))) . '</p>';
       // Only explain the Update manager if it has not been disabled.
       if (update_manager_access()) {
         $output .= '<p>' . t('The Update manager also allows administrators to update and install modules and themes through the administration interface.') . '</p>';
@@ -122,9 +122,9 @@ function update_help($path, $arg) {
       // Only explain the Update manager if it has not been disabled.
       if (update_manager_access()) {
         $output .= '<dt>' . t('Performing updates through the user interface') . '</dt>';
-        $output .= '<dd>' . t('The Update manager module allows administrators to perform updates directly through the administration interface. At the top of the <a href="@modules_page">modules</a> and <a href="@themes_page">themes</a> pages you will see a link to update to new releases. This will direct you to the <a href="@update-page">update page</a> where you see a listing of all the missing updates and confirm which ones you want to upgrade. From there, you are prompted for your FTP/SSH password, which then transfers the files into your Drupal installation, overwriting your old files. More detailed instructions can be found in the <a href="@update">online handbook</a>.', array('@modules_page' => url('admin/config/modules'), '@themes_page' => url('admin/appearance'),  '@update-page' => url('admin/reports/updates/update'), '@update' => 'http://drupal.org/handbook/modules/update')) . '</dd>';
+        $output .= '<dd>' . t('The Update manager module allows administrators to perform updates directly through the administration interface. At the top of the <a href="@modules_page">modules</a> and <a href="@themes_page">themes</a> pages you will see a link to update to new releases. This will direct you to the <a href="@update-page">update page</a> where you see a listing of all the missing updates and confirm which ones you want to upgrade. From there, you are prompted for your FTP/SSH password, which then transfers the files into your Drupal installation, overwriting your old files. More detailed instructions can be found in the <a href="@update">online handbook</a>.', array('@modules_page' => url('admin/modules'), '@themes_page' => url('admin/appearance'),  '@update-page' => url('admin/reports/updates/update'), '@update' => 'http://drupal.org/handbook/modules/update')) . '</dd>';
         $output .= '<dt>' . t('Installing new modules and themes through the user interface') . '</dt>';
-        $output .= '<dd>' . t('You can also install new modules and themes in the same fashion, through the <a href="@install">install page</a>, or by clicking the <em>Install new module/theme</em> link at the top of the <a href="@modules_page">modules</a> and <a href="@themes_page">themes</a> pages. In this case, you are prompted to provide either the URL to the download, or to upload a packaged release file from your local computer.', array('@modules_page' => url('admin/config/modules'), '@themes_page' => url('admin/appearance'), '@install' => url('admin/reports/updates/install'))) . '</dd>';
+        $output .= '<dd>' . t('You can also install new modules and themes in the same fashion, through the <a href="@install">install page</a>, or by clicking the <em>Install new module/theme</em> link at the top of the <a href="@modules_page">modules</a> and <a href="@themes_page">themes</a> pages. In this case, you are prompted to provide either the URL to the download, or to upload a packaged release file from your local computer.', array('@modules_page' => url('admin/modules'), '@themes_page' => url('admin/appearance'), '@install' => url('admin/reports/updates/install'))) . '</dd>';
       }
       $output .= '</dl>';
       return $output;
@@ -193,7 +193,7 @@ function update_menu() {
   // customize the appearance as needed.
   $paths = array(
     'report' => 'admin/reports/updates',
-    'module' => 'admin/config/modules',
+    'module' => 'admin/modules',
     'theme' => 'admin/appearance',
   );
   foreach ($paths as $context => $path) {
@@ -219,8 +219,8 @@ function update_menu() {
   // Customize the titles of the action links depending on where they appear.
   $items['admin/reports/updates/install']['title'] = 'Install new module or theme';
   $items['admin/reports/updates/update']['title'] = 'Update existing modules and themes';
-  $items['admin/config/modules/install']['title'] = 'Install new module';
-  $items['admin/config/modules/update']['title'] = 'Update existing modules';
+  $items['admin/modules/install']['title'] = 'Install new module';
+  $items['admin/modules/update']['title'] = 'Update existing modules';
   $items['admin/appearance/install']['title'] = 'Install new theme';
   $items['admin/appearance/update']['title'] = 'Update existing themes';
 
