annotate core/modules/system/src/Controller/BatchController.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\system\Controller;
Chris@0 4
Chris@0 5 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
Chris@0 6 use Symfony\Component\DependencyInjection\ContainerInterface;
Chris@0 7 use Symfony\Component\HttpFoundation\Request;
Chris@0 8 use Symfony\Component\HttpFoundation\Response;
Chris@0 9 use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
Chris@0 10
Chris@0 11 /**
Chris@0 12 * Controller routines for batch routes.
Chris@0 13 */
Chris@0 14 class BatchController implements ContainerInjectionInterface {
Chris@0 15
Chris@0 16 /**
Chris@0 17 * The app root.
Chris@0 18 *
Chris@0 19 * @var string
Chris@0 20 */
Chris@0 21 protected $root;
Chris@0 22
Chris@0 23 /**
Chris@0 24 * Constructs a new BatchController.
Chris@0 25 *
Chris@0 26 * @param string $root
Chris@0 27 * The app root.
Chris@0 28 */
Chris@0 29 public function __construct($root) {
Chris@0 30 $this->root = $root;
Chris@0 31 }
Chris@0 32
Chris@0 33 /**
Chris@0 34 * {@inheritdoc}
Chris@0 35 */
Chris@0 36 public static function create(ContainerInterface $container) {
Chris@0 37 return new static(
Chris@0 38 $container->get('app.root')
Chris@0 39 );
Chris@0 40 }
Chris@0 41
Chris@0 42 /**
Chris@0 43 * Returns a system batch page.
Chris@0 44 *
Chris@0 45 * @param \Symfony\Component\HttpFoundation\Request $request
Chris@0 46 * The current request object.
Chris@0 47 *
Chris@0 48 * @return \Symfony\Component\HttpFoundation\Response|array
Chris@0 49 * A \Symfony\Component\HttpFoundation\Response object or render array.
Chris@0 50 *
Chris@0 51 * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
Chris@0 52 */
Chris@0 53 public function batchPage(Request $request) {
Chris@0 54 require_once $this->root . '/core/includes/batch.inc';
Chris@0 55 $output = _batch_page($request);
Chris@0 56
Chris@0 57 if ($output === FALSE) {
Chris@0 58 throw new AccessDeniedHttpException();
Chris@0 59 }
Chris@0 60 elseif ($output instanceof Response) {
Chris@0 61 return $output;
Chris@0 62 }
Chris@0 63 elseif (isset($output)) {
Chris@0 64 $title = isset($output['#title']) ? $output['#title'] : NULL;
Chris@0 65 $page = [
Chris@0 66 '#type' => 'page',
Chris@0 67 '#title' => $title,
Chris@0 68 '#show_messages' => FALSE,
Chris@0 69 'content' => $output,
Chris@0 70 ];
Chris@0 71
Chris@0 72 // Also inject title as a page header (if available).
Chris@0 73 if ($title) {
Chris@0 74 $page['header'] = [
Chris@0 75 '#type' => 'page_title',
Chris@0 76 '#title' => $title,
Chris@0 77 ];
Chris@0 78 }
Chris@0 79
Chris@0 80 return $page;
Chris@0 81 }
Chris@0 82 }
Chris@0 83
Chris@0 84 /**
Chris@0 85 * The _title_callback for the system.batch_page.normal route.
Chris@0 86 *
Chris@0 87 * @return string
Chris@0 88 * The page title.
Chris@0 89 */
Chris@0 90 public function batchPageTitle() {
Chris@0 91 $current_set = _batch_current_set();
Chris@0 92 return !empty($current_set['title']) ? $current_set['title'] : '';
Chris@0 93 }
Chris@0 94
Chris@0 95 }