forked from a64f7bb4-7358-4778-9fbe-3b882c34cc1d/v1
64 lines
3.5 KiB
Twig
64 lines
3.5 KiB
Twig
/**
|
|
* Implements hook_install_tasks().
|
|
*/
|
|
function {{ machine_name }}_install_tasks(&$install_state) {
|
|
// 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.
|
|
$my_profile_needs_batch_processing = \Drupal::state()->get('my_profile.needs_batch_processing', FALSE);
|
|
$tasks = [
|
|
// This is an example of a task that defines a form which the user who is
|
|
// installing the site will be asked to fill out. To implement this task,
|
|
// your profile would define a function named my_profile_data_import_form()
|
|
// as a normal form API callback function, with associated validation and
|
|
// submit handlers. In the submit handler, in addition to saving whatever
|
|
// other data you have collected from the user, you might also call
|
|
// \Drupal::state()->set('my_profile.needs_batch_processing', TRUE) if the
|
|
// user has entered data which requires that batch processing will need to
|
|
// occur later on.
|
|
'my_profile_data_import_form' => [
|
|
'display_name' => t('Data import options'),
|
|
'type' => 'form',
|
|
],
|
|
// Similarly, to implement this task, your profile would define a function
|
|
// named my_profile_settings_form() with associated validation and submit
|
|
// handlers. This form might be used to collect and save additional
|
|
// information from the user that your profile needs. There are no extra
|
|
// steps required for your profile to act as an "installation wizard"; you
|
|
// can simply define as many tasks of type 'form' as you wish to execute,
|
|
// and the forms will be presented to the user, one after another.
|
|
'my_profile_settings_form' => [
|
|
'display_name' => t('Additional options'),
|
|
'type' => 'form',
|
|
],
|
|
// This is an example of a task that performs batch operations. To
|
|
// implement this task, your profile would define a function named
|
|
// my_profile_batch_processing() which returns a batch API array definition
|
|
// that the installer will use to execute your batch operations. Due to the
|
|
// 'my_profile.needs_batch_processing' variable used here, this task will be
|
|
// hidden and skipped unless your profile set it to TRUE in one of the
|
|
// previous tasks.
|
|
'my_profile_batch_processing' => [
|
|
'display_name' => t('Import additional data'),
|
|
'display' => $my_profile_needs_batch_processing,
|
|
'type' => 'batch',
|
|
'run' => $my_profile_needs_batch_processing ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
|
|
],
|
|
// This is an example of a task that will not be displayed in the list that
|
|
// the user sees. To implement this task, your profile would define a
|
|
// function named my_profile_final_site_setup(), in which additional,
|
|
// automated site setup operations would be performed. Since this is the
|
|
// last task defined by your profile, you should also use this function to
|
|
// call \Drupal::state()->delete('my_profile.needs_batch_processing') and
|
|
// clean up the state that was used above. If you want the user to pass
|
|
// to the final Drupal installation tasks uninterrupted, return no output
|
|
// from this function. Otherwise, return themed output that the user will
|
|
// see (for example, a confirmation page explaining that your profile's
|
|
// tasks are complete, with a link to reload the current page and therefore
|
|
// pass on to the final Drupal installation tasks when the user is ready to
|
|
// do so).
|
|
'my_profile_final_site_setup' => [],
|
|
];
|
|
return $tasks;
|
|
}
|