core/core.services.yml | 2 +- .../Core/Render/MainContent/AjaxRenderer.php | 29 +++++++++------------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/core/core.services.yml b/core/core.services.yml index ee5c7f0..b2ea111 100644 --- a/core/core.services.yml +++ b/core/core.services.yml @@ -725,7 +725,7 @@ services: - { name: render.main_content_renderer, format: html } main_content_renderer.ajax: class: Drupal\Core\Render\MainContent\AjaxRenderer - arguments: ['@element_info'] + arguments: ['@element_info', '@renderer'] tags: - { name: render.main_content_renderer, format: drupal_ajax } main_content_renderer.dialog: diff --git a/core/lib/Drupal/Core/Render/MainContent/AjaxRenderer.php b/core/lib/Drupal/Core/Render/MainContent/AjaxRenderer.php index 98d96cc..6b76802 100644 --- a/core/lib/Drupal/Core/Render/MainContent/AjaxRenderer.php +++ b/core/lib/Drupal/Core/Render/MainContent/AjaxRenderer.php @@ -12,6 +12,7 @@ use Drupal\Core\Ajax\InsertCommand; use Drupal\Core\Ajax\PrependCommand; use Drupal\Core\Render\ElementInfoManagerInterface; +use Drupal\Core\Render\RendererInterface; use Drupal\Core\Routing\RouteMatchInterface; use Symfony\Component\HttpFoundation\Request; @@ -21,27 +22,30 @@ class AjaxRenderer implements MainContentRendererInterface { /** - * The controller resolver. + * The element info manager. * - * @var \Drupal\Core\Controller\ControllerResolverInterface + * @var \Drupal\Core\Render\ElementInfoManagerInterface */ - protected $controllerResolver; + protected $elementInfoManager; /** - * The element info manager. + * The renderer. * - * @var \Drupal\Core\Render\ElementInfoManagerInterface + * @var \Drupal\Core\Render\RendererInterface */ - protected $elementInfoManager; + protected $renderer; /** * Constructs a new AjaxRenderer instance. * * @param \Drupal\Core\Render\ElementInfoManagerInterface $element_info_manager * The element info manager. + * @param \Drupal\Core\Render\RendererInterface $renderer + * The renderer. */ - public function __construct(ElementInfoManagerInterface $element_info_manager) { + public function __construct(ElementInfoManagerInterface $element_info_manager, RendererInterface $renderer) { $this->elementInfoManager = $element_info_manager; + $this->renderer = $renderer; } /** @@ -72,20 +76,11 @@ public function renderResponse(array $main_content, Request $request, RouteMatch // behavior can be changed with #ajax['method']. $response->addCommand(new InsertCommand(NULL, $html)); $status_messages = array('#theme' => 'status_messages'); - $output = $this->drupalRenderRoot($status_messages); + $output = $this->renderer->renderRoot($status_messages); if (!empty($output)) { $response->addCommand(new PrependCommand(NULL, $output)); } return $response; } - /** - * Wraps drupal_render_root(). - * - * @todo: Remove as part of https://drupal.org/node/2182149 - */ - protected function drupalRenderRoot(&$elements) { - return drupal_render_root($elements); - } - }