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