Unverified Commit b5238ac9 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #2818677 by msankhala, NickWilde, Berdir, alexpott, dimaro, poornima.n,...

Issue #2818677 by msankhala, NickWilde, Berdir, alexpott, dimaro, poornima.n, sidharthap, dhirendra.mishra, keshav.k, xjm, mahtab_alam, ieguskiza, borisson_, catch, larowlan: Replace usages of deprecated method drupal_render_root()
parent ce3fa516
Loading
Loading
Loading
Loading
+3 −3
Changes for core/core.services.yml: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -1093,13 +1093,13 @@ 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 }
      - { name: render.main_content_renderer, format: iframeupload }
  main_content_renderer.dialog:
    class: Drupal\Core\Render\MainContent\DialogRenderer
    arguments: ['@title_resolver']
    arguments: ['@title_resolver', '@renderer']
    tags:
      - { name: render.main_content_renderer, format: drupal_dialog }
  main_content_renderer.off_canvas:
@@ -1114,7 +1114,7 @@ services:
      - { name: render.main_content_renderer, format: drupal_dialog.off_canvas_top }
  main_content_renderer.modal:
    class: Drupal\Core\Render\MainContent\ModalRenderer
    arguments: ['@title_resolver']
    arguments: ['@title_resolver', '@renderer']
    tags:
      - { name: render.main_content_renderer, format: drupal_modal }
  controller.form:
+4 −3
Changes for core/includes/common.inc: 4 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -776,7 +776,7 @@ function drupal_pre_render_link($element) {
/**
 * Pre-render callback: Collects child links into a single array.
 *
 * @deprecated in Drupal 8.8.0 and will be removed before Drupal 9.0.0. Use
 * @deprecated in drupal:8.0.0 and will be removed before drupal:9.0.0. Use
 *   \Drupal\Core\Render\Element\Link::preRenderLinks() instead.
 *
 * @see https://www.drupal.org/node/2966725
@@ -789,13 +789,14 @@ function drupal_pre_render_links($element) {
/**
 * Renders final HTML given a structured array tree.
 *
 * @deprecated as of Drupal 8.0.x, will be removed before Drupal 9.0.0. Use the
 *   'renderer' service instead.
 * @deprecated as of drupal:8.0.0 and is removed from drupal:9.0.0. Use
 *   \Drupal\Core\Render\RendererInterface::renderRoot() instead.
 *
 * @see \Drupal\Core\Render\RendererInterface::renderRoot()
 * @see https://www.drupal.org/node/2912696
 */
function drupal_render_root(&$elements) {
  @trigger_error('drupal_render_root() is deprecated in drupal:8.0.0 and is removed from drupal:9.0.0. Use \Drupal\Core\Render\RendererInterface::renderRoot() instead. See https://www.drupal.org/node/2912696', E_USER_DEPRECATED);
  return \Drupal::service('renderer')->renderRoot($elements);
}

+25 −6
Changes for core/lib/Drupal/Core/Render/MainContent/AjaxRenderer.php: 25 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,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;

@@ -22,14 +23,28 @@ class AjaxRenderer implements MainContentRendererInterface {
   */
  protected $elementInfoManager;

  /**
   * The renderer.
   *
   * @var \Drupal\Core\Render\RendererInterface
   */
  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 = NULL) {
    $this->elementInfoManager = $element_info_manager;
    if ($renderer === NULL) {
      @trigger_error('The renderer service must be passed to ' . __METHOD__ . ' and will be required before Drupal 9.0.0. See https://www.drupal.org/node/3009400', E_USER_DEPRECATED);
      $renderer = \Drupal::service('renderer');
    }
    $this->renderer = $renderer;
  }

  /**
@@ -52,7 +67,7 @@ public function renderResponse(array $main_content, Request $request, RouteMatch
      }
    }

    $html = $this->drupalRenderRoot($main_content);
    $html = $this->renderer->renderRoot($main_content);
    $response->setAttachments($main_content['#attached']);

    // The selector for the insert command is NULL as the new content will
@@ -60,7 +75,7 @@ public function renderResponse(array $main_content, Request $request, RouteMatch
    // behavior can be changed with #ajax['method'].
    $response->addCommand(new InsertCommand(NULL, $html));
    $status_messages = ['#type' => 'status_messages'];
    $output = $this->drupalRenderRoot($status_messages);
    $output = $this->renderer->renderRoot($status_messages);
    if (!empty($output)) {
      $response->addCommand(new PrependCommand(NULL, $output));
    }
@@ -68,12 +83,16 @@ public function renderResponse(array $main_content, Request $request, RouteMatch
  }

  /**
   * Wraps drupal_render_root().
   * Wraps \Drupal\Core\Render\RendererInterface::renderRoot().
   *
   * @deprecated in Drupal 8.7.x and will be removed before Drupal 9.0.0. Use
   *   $this->renderer->renderRoot() instead.
   *
   * @todo Remove as part of https://www.drupal.org/node/2182149.
   * @see https://www.drupal.org/node/2912696
   */
  protected function drupalRenderRoot(&$elements) {
    return drupal_render_root($elements);
    @trigger_error('\Drupal\Core\Render\MainContent\AjaxRenderer::drupalRenderRoot() is deprecated in Drupal 8.7.x and will be removed before Drupal 9.0.0. Use $this->renderer->renderRoot() instead. See https://www.drupal.org/node/2912696', E_USER_DEPRECATED);
    return $this->renderer->renderRoot($elements);
  }

}
+17 −2
Changes for core/lib/Drupal/Core/Render/MainContent/DialogRenderer.php: 17 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
use Drupal\Core\Ajax\OpenDialogCommand;
use Drupal\Core\Controller\TitleResolverInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Render\RendererInterface;
use Symfony\Component\HttpFoundation\Request;

/**
@@ -21,14 +22,28 @@ class DialogRenderer implements MainContentRendererInterface {
   */
  protected $titleResolver;

  /**
   * The renderer.
   *
   * @var \Drupal\Core\Render\RendererInterface
   */
  protected $renderer;

  /**
   * Constructs a new DialogRenderer.
   *
   * @param \Drupal\Core\Controller\TitleResolverInterface $title_resolver
   *   The title resolver.
   * @param \Drupal\Core\Render\RendererInterface $renderer
   *   The renderer.
   */
  public function __construct(TitleResolverInterface $title_resolver) {
  public function __construct(TitleResolverInterface $title_resolver, RendererInterface $renderer = NULL) {
    $this->titleResolver = $title_resolver;
    if ($renderer === NULL) {
      @trigger_error('The renderer service must be passed to ' . __METHOD__ . ' and will be required before Drupal 9.0.0. See https://www.drupal.org/node/3009400', E_USER_DEPRECATED);
      $renderer = \Drupal::service('renderer');
    }
    $this->renderer = $renderer;
  }

  /**
@@ -38,7 +53,7 @@ public function renderResponse(array $main_content, Request $request, RouteMatch
    $response = new AjaxResponse();

    // First render the main content, because it might provide a title.
    $content = drupal_render_root($main_content);
    $content = $this->renderer->renderRoot($main_content);

    // Attach the library necessary for using the OpenDialogCommand and set the
    // attachments for this Ajax response.
+1 −1
Changes for core/lib/Drupal/Core/Render/MainContent/ModalRenderer.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ public function renderResponse(array $main_content, Request $request, RouteMatch
    $response = new AjaxResponse();

    // First render the main content, because it might provide a title.
    $content = drupal_render_root($main_content);
    $content = $this->renderer->renderRoot($main_content);

    // Attach the library necessary for using the OpenModalDialogCommand and set
    // the attachments for this Ajax response.
Loading