function _batch_finished
_batch_finished()
Ends the batch processing.
Call the 'finished' callback of each batch set to allow custom handling of the results and resolve page redirection.
File
- includes/batch.inc, line 453
- Batch processing API for processes to run in multiple HTTP requests.
Code
function _batch_finished() { $batch = &batch_get(); // Execute the 'finished' callbacks for each batch set, if defined. foreach ($batch['sets'] as $batch_set) { if (isset($batch_set['finished'])) { // Check if the set requires an additional file for function definitions. if (isset($batch_set['file']) && is_file($batch_set['file'])) { include_once DRUPAL_ROOT . '/' . $batch_set['file']; } if (is_callable($batch_set['finished'])) { $queue = _batch_queue($batch_set); $operations = $queue->getAllItems(); call_user_func($batch_set['finished'], $batch_set['success'], $batch_set['results'], $operations, format_interval($batch_set['elapsed'] / 1000)); } } } // Clean up the batch table and unset the static $batch variable. if ($batch['progressive']) { db_delete('batch') ->condition('bid', $batch['id']) ->execute(); foreach ($batch['sets'] as $batch_set) { if ($queue = _batch_queue($batch_set)) { $queue->deleteQueue(); } } } $_batch = $batch; $batch = NULL; // Clean-up the session. Not needed for CLI updates. if (isset($_SESSION)) { unset($_SESSION['batches'][$batch['id']]); if (empty($_SESSION['batches'])) { unset($_SESSION['batches']); } } // Redirect if needed. if ($_batch['progressive']) { // Revert the 'destination' that was saved in batch_process(). if (isset($_batch['destination'])) { $_GET['destination'] = $_batch['destination']; } // Determine the target path to redirect to. if (!isset($_batch['form_state']['redirect'])) { if (isset($_batch['redirect'])) { $_batch['form_state']['redirect'] = $_batch['redirect']; } else { $_batch['form_state']['redirect'] = $_batch['source_url']; } } // Use drupal_redirect_form() to handle the redirection logic. drupal_redirect_form($_batch['form_state']); // If no redirection happened, redirect to the originating page. In case the // form needs to be rebuilt, save the final $form_state for // drupal_build_form(). if (!empty($_batch['form_state']['rebuild'])) { $_SESSION['batch_form_state'] = $_batch['form_state']; } $function = $_batch['redirect_callback']; if (function_exists($function)) { $function($_batch['source_url'], array('query' => array('op' => 'finish', 'id' => $_batch['id']))); } } }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!batch.inc/function/_batch_finished/7.x