Index: modules/system/system.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v retrieving revision 1.36 diff -u -r1.36 system.admin.inc --- modules/system/system.admin.inc 13 Dec 2007 10:46:43 -0000 1.36 +++ modules/system/system.admin.inc 13 Dec 2007 19:58:13 -0000 @@ -863,6 +863,14 @@ if (!empty($disable_modules)) { module_disable($disable_modules); } + + // Modules that were enabled, but not necessarily installed + $enabled_modules = array(); + foreach ($enable_modules as $module) { + if (!in_array($module, $old_module_list)) { + $enabled_modules[] = $module; + } + } // Install new modules. foreach ($new_modules as $key => $module) { @@ -871,10 +879,39 @@ } } drupal_install_modules($new_modules); - + $current_module_list = module_list(TRUE, FALSE); + if ($old_module_list != $current_module_list) { drupal_set_message(t('The configuration options have been saved.')); + // Generate in-depth links for enabled modules + + // Generate each module + $module_info = module_rebuild_cache(); + foreach ($enabled_modules as $module) { + $module_menu = system_get_module_admin_tasks($module); + $links = array(); + // We can't use module_invoke('help') due to caching quirks + if (module_hook($module, 'help')) { + $links[] = l(t('Help'), 'admin/help/'. $module); + } + foreach ($module_menu as $link) { + $links[] = $link; + } + if (!empty($links)) { + $message = $module_info[$module]->info['name'] . t(' enabled. '); + $message .= t('Start using this module:'); + $message .= '