_batch_page(Request $request)
Renders the batch processing page based on the current state of the batch.
Parameters
\Symfony\Component\HttpFoundation\Request $request: The current request object.
See also
File
- core/includes/batch.inc, line 34
- Batch processing API for processes to run in multiple HTTP requests.
Code
function _batch_page(Request $request) { $batch = &batch_get(); if (!($request_id = $request->query->get('id'))) { return FALSE; } // Retrieve the current state of the batch. if (!$batch) { $batch = \Drupal::service('batch.storage')->load($request_id); if (!$batch) { drupal_set_message(t('No active batch.'), 'error'); return new RedirectResponse(\Drupal::url('<front>', [], ['absolute' => TRUE])); } } // Register database update for the end of processing. drupal_register_shutdown_function('_batch_shutdown'); $build = array(); // Add batch-specific libraries. foreach ($batch['sets'] as $batch_set) { if (isset($batch_set['library'])) { foreach ($batch_set['library'] as $library) { $build['#attached']['library'][] = $library; } } } $op = $request->query->get('op', ''); switch ($op) { case 'start': case 'do_nojs': // Display the full progress page on startup and on each additional // non-JavaScript iteration. $current_set = _batch_current_set(); $build['#title'] = $current_set['title']; $build['content'] = _batch_progress_page(); break; case 'do': // JavaScript-based progress page callback. return _batch_do(); case 'finished': // _batch_finished() returns a RedirectResponse. return _batch_finished(); } return $build; }
Please login to continue.