1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- namespace Drupal\system\Controller;
- use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
- use Symfony\Component\DependencyInjection\ContainerInterface;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
- /**
- * Controller routines for batch routes.
- */
- class BatchController implements ContainerInjectionInterface {
- /**
- * The app root.
- *
- * @var string
- */
- protected $root;
- /**
- * Constructs a new BatchController.
- *
- * @param string $root
- * The app root.
- */
- public function __construct($root) {
- $this->root = $root;
- }
- /**
- * {@inheritdoc}
- */
- public static function create(ContainerInterface $container) {
- return new static(
- $container->get('app.root')
- );
- }
- /**
- * Returns a system batch page.
- *
- * @param \Symfony\Component\HttpFoundation\Request $request
- * The current request object.
- *
- * @return \Symfony\Component\HttpFoundation\Response|array
- * A \Symfony\Component\HttpFoundation\Response object or render array.
- *
- * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
- */
- public function batchPage(Request $request) {
- require_once $this->root . '/core/includes/batch.inc';
- $output = _batch_page($request);
- if ($output === FALSE) {
- throw new AccessDeniedHttpException();
- }
- elseif ($output instanceof Response) {
- return $output;
- }
- elseif (isset($output)) {
- $title = isset($output['#title']) ? $output['#title'] : NULL;
- $page = [
- '#type' => 'page',
- '#title' => $title,
- '#show_messages' => FALSE,
- 'content' => $output,
- ];
- // Also inject title as a page header (if available).
- if ($title) {
- $page['header'] = [
- '#type' => 'page_title',
- '#title' => $title,
- ];
- }
- return $page;
- }
- }
- /**
- * The _title_callback for the system.batch_page.normal route.
- *
- * @return string
- * The page title.
- */
- public function batchPageTitle() {
- $current_set = _batch_current_set();
- return !empty($current_set['title']) ? $current_set['title'] : '';
- }
- }
|