diff --git a/includes/install.inc b/includes/install.inc index fcbf8ea15cc2444582110ab67faee65ba996c06c..02d2e3452203695b58e7b2730808da038703838e 100644 --- a/includes/install.inc +++ b/includes/install.inc @@ -167,22 +167,17 @@ function drupal_set_installed_schema_version($module, $version) { } /** - * Loads the install profile definition, extracting its defined name. + * Loads the install profile, extracting its defined distribution name. * * @return - * The name defined in the profile's _profile_details() hook. + * The distribution name defined in the profile's .info file. Defaults to + * "Drupal" if none is explicitly provided by the install profile. + * + * @see install_profile_info() */ -function drupal_install_profile_name() { +function drupal_install_profile_distribution_name() { global $install_state; - - if (isset($install_state['profile_info']['name'])) { - $name = $install_state['profile_info']['name']; - } - else { - $name = 'Drupal'; - } - - return $name; + return $install_state['profile_info']['distribution_name']; } /** @@ -1063,15 +1058,22 @@ function drupal_check_module($module) { /** * Retrieve info about an install profile from its .info file. * - * Information stored in the profile.info file: + * The information stored in a profile .info file is similar to that stored in + * a normal Drupal module .info file. For example: * - name: The real name of the install profile for display purposes. * - description: A brief description of the profile. * - dependencies: An array of shortnames of other modules this install profile requires. * + * Additional, less commonly-used information that can appear in a profile.info + * file but not in a normal Drupal module .info file includes: + * - distribution_name: The name of the Drupal distribution that is being + * installed, to be shown throughout the installation process. Defaults to + * 'Drupal'. + * * Example of .info file: * @verbatim - * name = Drupal (minimal) - * description = Create a Drupal site with only required modules enabled. + * name = Minimal + * description = Start fresh, with only a few modules enabled. * dependencies[] = block * dependencies[] = dblog * @endverbatim @@ -1091,6 +1093,7 @@ function install_profile_info($profile, $locale = 'en') { $defaults = array( 'dependencies' => array(), 'description' => '', + 'distribution_name' => 'Drupal', 'version' => NULL, 'php' => DRUPAL_MINIMUM_PHP, ); diff --git a/install.php b/install.php index 3cdea337502148fca2b87f1bdf12660ceddcbb99..5948f5156a518fd93ad488a1b97e8a97c7086a00 100644 --- a/install.php +++ b/install.php @@ -844,7 +844,7 @@ function install_settings_form($form, &$form_state, &$install_state) { '#required' => TRUE, '#options' => $drivers, '#default_value' => !empty($database['driver']) ? $database['driver'] : current(array_keys($drivers)), - '#description' => st('The type of database your @drupal data will be stored in.', array('@drupal' => drupal_install_profile_name())), + '#description' => st('The type of database your @drupal data will be stored in.', array('@drupal' => drupal_install_profile_distribution_name())), ); if (count($drivers) == 1) { $form['basic_options']['driver']['#disabled'] = TRUE; @@ -858,7 +858,7 @@ function install_settings_form($form, &$form_state, &$install_state) { '#default_value' => empty($database['database']) ? '' : $database['database'], '#size' => 45, '#required' => TRUE, - '#description' => st('The name of the database your @drupal data will be stored in. It must exist on your server before @drupal can be installed.', array('@drupal' => drupal_install_profile_name())), + '#description' => st('The name of the database your @drupal data will be stored in. It must exist on your server before @drupal can be installed.', array('@drupal' => drupal_install_profile_distribution_name())), ); // Database username @@ -915,7 +915,7 @@ function install_settings_form($form, &$form_state, &$install_state) { '#title' => st('Table prefix'), '#default_value' => '', '#size' => 45, - '#description' => st('If more than one application will be sharing this database, enter a table prefix such as %prefix for your @drupal site here.', array('@drupal' => drupal_install_profile_name(), '%prefix' => $db_prefix)), + '#description' => st('If more than one application will be sharing this database, enter a table prefix such as %prefix for your @drupal site here.', array('@drupal' => drupal_install_profile_distribution_name(), '%prefix' => $db_prefix)), ); $form['save'] = array( @@ -960,7 +960,7 @@ function install_database_errors($database, $settings_file) { $database_types = drupal_detect_database_types(); $driver = $database['driver']; if (!isset($database_types[$driver])) { - $errors['driver'] = st("In your %settings_file file you have configured @drupal to use a %driver server, however your PHP installation currently does not support this database type.", array('%settings_file' => $settings_file, '@drupal' => drupal_install_profile_name(), '%driver' => $database['driver'])); + $errors['driver'] = st("In your %settings_file file you have configured @drupal to use a %driver server, however your PHP installation currently does not support this database type.", array('%settings_file' => $settings_file, '@drupal' => drupal_install_profile_distribution_name(), '%driver' => $database['driver'])); } else { // Run tasks associated with the database type. Any errors are caught in the @@ -1103,8 +1103,22 @@ function install_select_profile_form($form, &$form_state, $profile_files) { $names[$profile->name] = $name; } - // Display radio buttons alphabetically by human-readable name. + // Display radio buttons alphabetically by human-readable name, but always + // put the core profiles first (if they are present in the filesystem). natcasesort($names); + if (isset($names['expert'])) { + // If the expert ("Minimal") core profile is present, put it in front of + // any non-core profiles rather than including it with them alphabetically, + // since the other profiles might be intended to group together in a + // particular way. + $names = array('expert' => $names['expert']) + $names; + } + if (isset($names['default'])) { + // If the default ("Standard") core profile is present, put it at the very + // top of the list. This profile will have its radio button pre-selected, + // so we want it to always appear at the top. + $names = array('default' => $names['default']) + $names; + } foreach ($names as $profile => $name) { $form['profile'][$name] = array( @@ -1323,7 +1337,7 @@ function install_profile_modules(&$install_state) { } $batch = array( 'operations' => $operations, - 'title' => st('Installing @drupal', array('@drupal' => drupal_install_profile_name())), + 'title' => st('Installing @drupal', array('@drupal' => drupal_install_profile_distribution_name())), 'error_message' => st('The installation has encountered an error.'), ); return $batch; @@ -1435,9 +1449,9 @@ function install_import_locales_remaining(&$install_state) { * A message informing the user that the installation is complete. */ function install_finished(&$install_state) { - drupal_set_title(st('@drupal installation complete', array('@drupal' => drupal_install_profile_name())), PASS_THROUGH); + drupal_set_title(st('@drupal installation complete', array('@drupal' => drupal_install_profile_distribution_name())), PASS_THROUGH); $messages = drupal_set_message(); - $output = '<p>' . st('Congratulations, you installed @drupal!', array('@drupal' => drupal_install_profile_name())) . '</p>'; + $output = '<p>' . st('Congratulations, you installed @drupal!', array('@drupal' => drupal_install_profile_distribution_name())) . '</p>'; $output .= '<p>' . (isset($messages['error']) ? st('Review the messages above before visiting <a href="@url">your new site</a>.', array('@url' => url(''))) : st('<a href="@url">Visit your new site</a>.', array('@url' => url('')))) . '</p>'; // Rebuild the module and theme data, in case any newly-installed modules @@ -1524,7 +1538,7 @@ function install_check_requirements($install_state) { 'title' => st('Settings file'), 'value' => st('The settings file does not exist.'), 'severity' => REQUIREMENT_ERROR, - 'description' => st('The @drupal installer requires that you create a settings file as part of the installation process. Copy the %default_file file to %file. More details about installing Drupal are available in <a href="@install_txt">INSTALL.txt</a>.', array('@drupal' => drupal_install_profile_name(), '%file' => $file, '%default_file' => $conf_path . '/default.settings.php', '@install_txt' => base_path() . 'INSTALL.txt')), + 'description' => st('The @drupal installer requires that you create a settings file as part of the installation process. Copy the %default_file file to %file. More details about installing Drupal are available in <a href="@install_txt">INSTALL.txt</a>.', array('@drupal' => drupal_install_profile_distribution_name(), '%file' => $file, '%default_file' => $conf_path . '/default.settings.php', '@install_txt' => base_path() . 'INSTALL.txt')), ); } else { @@ -1537,7 +1551,7 @@ function install_check_requirements($install_state) { 'title' => st('Settings file'), 'value' => st('The settings file is not writable.'), '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, consult the <a href="@handbook_url">online handbook</a>.', array('@drupal' => drupal_install_profile_name(), '%file' => $file, '@handbook_url' => 'http://drupal.org/server-permissions')), + 'description' => st('The @drupal installer requires write permissions to %file during the installation process. If you are unsure how to grant file permissions, consult the <a href="@handbook_url">online handbook</a>.', array('@drupal' => drupal_install_profile_distribution_name(), '%file' => $file, '@handbook_url' => 'http://drupal.org/server-permissions')), ); } else { diff --git a/profiles/default/default.info b/profiles/default/default.info index a2b17aeb296d83b9a7515fb3261412dae1822a37..85abfe2a206c41d1a1cefe546e01071d8ea53983 100644 --- a/profiles/default/default.info +++ b/profiles/default/default.info @@ -1,6 +1,6 @@ ; $Id$ -name = Drupal -description = Create a Drupal site with the most commonly used features pre-installed. +name = Standard +description = Install with commonly used features pre-configured. version = VERSION core = 7.x dependencies[] = block diff --git a/profiles/expert/expert.info b/profiles/expert/expert.info index 2be5d5437663bd0a42522c83fe81269025000e93..8b07f57a01fb11fed571ef708bc3ff6c9fb50d5b 100644 --- a/profiles/expert/expert.info +++ b/profiles/expert/expert.info @@ -1,6 +1,6 @@ ; $Id$ -name = Drupal (minimal) -description = Create a Drupal site with only required modules enabled. +name = Minimal +description = Start with only a few modules enabled. version = VERSION core = 7.x dependencies[] = block