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.