Index: includes/theme.maintenance.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/theme.maintenance.inc,v retrieving revision 1.15 diff -u -r1.15 theme.maintenance.inc --- includes/theme.maintenance.inc 1 Jul 2008 20:36:40 -0000 1.15 +++ includes/theme.maintenance.inc 17 Jul 2008 14:54:01 -0000 @@ -66,6 +66,7 @@ drupal_add_css(drupal_get_path('module', 'system') . '/system.css', 'module'); drupal_add_css(drupal_get_path('module', 'system') . '/system-menus.css', 'module'); drupal_add_css(drupal_get_path('module', 'system') . '/maintenance.css', 'module'); + drupal_add_css(drupal_get_path('module', 'system') . '/admin.css', 'module'); } /** Index: includes/install.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/install.inc,v retrieving revision 1.62 diff -u -r1.62 install.inc --- includes/install.inc 26 May 2008 17:12:54 -0000 1.62 +++ includes/install.inc 17 Jul 2008 14:54:00 -0000 @@ -310,6 +310,24 @@ } /** + * Get a list of modules required by an installation profile. + * + * @param profile + * Name of profile. + * @param locale + * Name of locale used (if any). + * @return + * The list of modules to install. + */ +function drupal_profile_modules($profile, $locale = 'en') { + $profile_file = "./profiles/$profile/$profile.profile"; + require_once($profile_file); + // Get a list of modules required by this profile. + $function = $profile . '_profile_modules'; + return array_merge(drupal_required_modules(), $function(), ($locale != 'en' ? array('locale') : array())); +} + +/** * Verify a profile for installation. * * @param profile @@ -328,12 +346,8 @@ if (!isset($profile) || !file_exists($profile_file)) { install_no_profile_error(); } - - require_once($profile_file); - - // Get a list of modules required by this profile. - $function = $profile . '_profile_modules'; - $module_list = array_merge(drupal_required_modules(), $function(), ($locale != 'en' ? array('locale') : array())); + + $module_list = drupal_profile_modules($profile, $locale); // Get a list of modules that exist in Drupal's assorted subdirectories. $present_modules = array(); @@ -343,14 +357,24 @@ // Verify that all of the profile's required modules are present. $missing_modules = array_diff($module_list, $present_modules); + + $requirements = array(); + if (count($missing_modules)) { + $modules = array(); foreach ($missing_modules as $module) { - drupal_set_message(st('The %module module is required but was not found. Please move it into the modules subdirectory.', array('%module' => $module)), 'error'); + $modules[] = '' . drupal_ucfirst($module) . ''; } + + $requirements['required_modules'] = array( + 'title' => st('Required modules'), + 'value' => st('Required modules not found.'), + 'severity' => REQUIREMENT_ERROR, + 'description' => st('The following modules are required but were not found. Please move them into the specific modules subdirectory. Missing modules: !modules', array('!modules' => implode(', ', $modules))), + ); } - else { - return $module_list; - } + + return $requirements; } /** Index: install.php =================================================================== RCS file: /cvs/drupal/drupal/install.php,v retrieving revision 1.123 diff -u -r1.123 install.php --- install.php 16 Jul 2008 21:59:24 -0000 1.123 +++ install.php 17 Jul 2008 14:54:00 -0000 @@ -110,19 +110,21 @@ // Tasks come after the database is set up if (!$task) { // Check the installation requirements for Drupal and this profile. - install_check_requirements($profile, $verify); + $requirements = install_check_requirements($profile, $verify); // Verify existence of all required modules. - $modules = drupal_verify_profile($profile, $install_locale); - - // If any error messages are set now, it means a requirement problem. - $messages = drupal_set_message(); - if (!empty($messages['error'])) { + $requirements += drupal_verify_profile($profile, $install_locale); + + $severity = drupal_requirements_severity($requirements); + + if ($severity == REQUIREMENT_ERROR) { install_task_list('requirements'); drupal_set_title(st('Requirements problem')); - print theme('install_page', ''); + $status_report = theme('status_report', $requirements); + $status_report .= st('Please check the error messages and try again.', array('!url' => request_uri())); + print theme('install_page', $status_report); exit; - } + } // Change the settings.php information if verification failed earlier. // Note: will trigger a redirect if database credentials change. @@ -135,6 +137,7 @@ // Save the list of other modules to install for the 'profile-install' // task. variable_set() can be used now that system.module is installed // and drupal is bootstrapped. + $modules = drupal_profile_modules($profile, $install_locale); variable_set('install_profile_modules', array_diff($modules, array('system'))); } @@ -873,7 +876,9 @@ * Check installation requirements and report any errors. */ function install_check_requirements($profile, $verify) { - + // Check the profile requirements. + $requirements = drupal_check_profile($profile); + // If Drupal is not set up already, we need to create a settings file. if (!$verify) { $writable = FALSE; @@ -894,40 +899,22 @@ } } - if (!$writable) { - drupal_set_message(st('The @drupal installer requires write permissions to %file during the installation process. If you are unsure how to grant file permissions, please consult the online handbook.', array('@drupal' => drupal_install_profile_name(), '%file' => $file, '@handbook_url' => 'http://drupal.org/server-permissions')), 'error'); - } - } - - // Check the other requirements. - $requirements = drupal_check_profile($profile); - $severity = drupal_requirements_severity($requirements); - - // If there are issues, report them. - if ($severity == REQUIREMENT_ERROR) { - - foreach ($requirements as $requirement) { - if (isset($requirement['severity']) && $requirement['severity'] == REQUIREMENT_ERROR) { - $message = $requirement['description']; - if (isset($requirement['value']) && $requirement['value']) { - $message .= ' (' . st('Currently using !item !version', array('!item' => $requirement['title'], '!version' => $requirement['value'])) . ')'; - } - drupal_set_message($message, 'error'); - } + $requirements['config file permissions'] = array( + 'title' => st('Config File Permission'), + ); + + if ($writable) { + $requirements['config file permissions']['value'] = st('Writeable'); } - } - if ($severity == REQUIREMENT_WARNING) { - - foreach ($requirements as $requirement) { - if (isset($requirement['severity']) && $requirement['severity'] == REQUIREMENT_WARNING) { - $message = $requirement['description']; - if (isset($requirement['value']) && $requirement['value']) { - $message .= ' (' . st('Currently using !item !version', array('!item' => $requirement['title'], '!version' => $requirement['value'])) . ')'; - } - drupal_set_message($message, 'warning'); - } + else { + $requirements['config file permissions'] += array( + 'value' => st('Not writeable'), + 'severity' => REQUIREMENT_ERROR, + 'description' => st('The @drupal installer requires write permissions to %file during the installation process. If you are unsure how to grant file permissions, please consult the online handbook.', array('@drupal' => drupal_install_profile_name(), '%file' => $file, '@handbook_url' => 'http://drupal.org/server-permissions')), + ); } } + return $requirements; } /** Index: modules/simpletest/drupal_web_test_case.php =================================================================== RCS file: /cvs/drupal/drupal/modules/simpletest/drupal_web_test_case.php,v retrieving revision 1.25 diff -u -r1.25 drupal_web_test_case.php --- modules/simpletest/drupal_web_test_case.php 5 Jul 2008 07:19:31 -0000 1.25 +++ modules/simpletest/drupal_web_test_case.php 17 Jul 2008 14:54:01 -0000 @@ -635,7 +635,7 @@ // Add the specified modules to the list of modules in the default profile. $args = func_get_args(); - $modules = array_unique(array_merge(drupal_verify_profile('default', 'en'), $args)); + $modules = array_unique(array_merge(drupal_profile_modules('default', 'en'), $args)); drupal_install_modules($modules); // Run default profile tasks.