Commit 89580246 authored by webchick's avatar webchick

#559294 by David_Rothstein: Allow install profiles to alter or override the task list.

parent 1d09ec33
......@@ -567,7 +567,7 @@ function install_tasks($install_state) {
// Now add any tasks defined by the installation profile.
if (!empty($install_state['parameters']['profile'])) {
$function = $install_state['parameters']['profile'] . '_profile_tasks';
$function = $install_state['parameters']['profile'] . '_install_tasks';
if (function_exists($function)) {
$result = $function($install_state);
if (is_array($result)) {
......@@ -589,6 +589,18 @@ function install_tasks($install_state) {
),
);
// Allow the installation profile to modify the full list of tasks.
if (!empty($install_state['parameters']['profile'])) {
$profile_file = DRUPAL_ROOT . '/profiles/' . $install_state['parameters']['profile'] . '/' . $install_state['parameters']['profile'] . '.profile';
if (is_file($profile_file)) {
include_once $profile_file;
$function = $install_state['parameters']['profile'] . '_install_tasks_alter';
if (function_exists($function)) {
$function($tasks, $install_state);
}
}
}
// Fill in default parameters for each task before returning the list.
foreach ($tasks as $task_name => &$task) {
$task += array(
......
......@@ -2175,7 +2175,7 @@ function hook_registry_files_alter(&$files, $module_cache) {
* @see install_state_defaults()
* @see batch_set()
*/
function hook_profile_tasks() {
function hook_install_tasks() {
// Here, we define a variable to allow tasks to indicate that a particular,
// processor-intensive batch process needs to be triggered later on in the
// installation.
......@@ -2256,6 +2256,23 @@ function hook_drupal_goto_alter(array $args) {
$args['http_response_code'] = 500;
}
/**
* Alter the full list of installation tasks.
*
* @param $tasks
* An array of all available installation tasks, including those provided by
* Drupal core. You can modify this array to change or replace any part of
* the Drupal installation process that occurs after the installation profile
* is selected.
* @param $install_state
* An array of information about the current installation state.
*/
function hook_install_tasks_alter(&$tasks, $install_state) {
// Replace the "Choose language" installation task provided by Drupal core
// with a custom callback function defined by this installation profile.
$tasks['install_select_locale']['function'] = 'myprofile_locale_selection';
}
/**
* Alter MIME type mappings used to determine MIME type from a file extension.
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment