Verified Commit 30d3c709 authored by Lee Rowlands's avatar Lee Rowlands
Browse files

Issue #3524738 by berdir, xjm, godotislate, oily, catch, penyaskito, larowlan,...

Issue #3524738 by berdir, xjm, godotislate, oily, catch, penyaskito, larowlan, kristiaanvandeneynde: Fatal error when passing NULL to Renderer::render()
parent 0c5dd8d0
Loading
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -208,7 +208,12 @@ public function renderPlaceholder($placeholder, array $elements) {
  /**
   * {@inheritdoc}
   */
  public function render(&$elements, $is_root_call = FALSE) {
  public function render(/* array */&$elements, $is_root_call = FALSE) {

    if (!is_array($elements)) {
      return '';
    }

    $context = $this->getCurrentRenderContext();
    if (!isset($context)) {
      throw new \LogicException("Render context is empty, because render() was called outside of a renderRoot() or renderPlain() call. Use renderPlain()/renderRoot() or #lazy_builder/#pre_render instead.");
+1 −1
Original line number Diff line number Diff line
@@ -340,7 +340,7 @@ public function renderPlaceholder($placeholder, array $elements);
   * @see \Drupal\Core\Render\AttachmentsResponseProcessorInterface::processAttachments()
   * @see \Drupal\Core\Render\RendererInterface::renderRoot()
   */
  public function render(&$elements, $is_root_call = FALSE);
  public function render(/* array */&$elements, $is_root_call = FALSE);

  /**
   * Checks whether a render context is active.
+5 −4
Original line number Diff line number Diff line
@@ -325,10 +325,11 @@ function template_preprocess_node(&$variables): void {
  //   $variables['content'] is more flexible and consistent.
  $submitted_configurable = $node->getFieldDefinition('created')->isDisplayConfigurable('view') || $node->getFieldDefinition('uid')->isDisplayConfigurable('view');
  if (!$skip_custom_preprocessing || !$submitted_configurable) {
    $variables['date'] = \Drupal::service('renderer')->render($variables['elements']['created']);
    unset($variables['elements']['created']);
    $variables['author_name'] = \Drupal::service('renderer')->render($variables['elements']['uid']);
    unset($variables['elements']['uid']);
    /** @var \Drupal\Core\Render\RendererInterface $renderer */
    $renderer = \Drupal::service('renderer');
    $variables['date'] = !empty($variables['elements']['created']) ? $renderer->render($variables['elements']['created']) : '';
    $variables['author_name'] = !empty($variables['elements']['uid']) ? $renderer->render($variables['elements']['uid']) : '';
    unset($variables['elements']['created'], $variables['elements']['uid']);
  }

  if (isset($variables['elements']['title']) && (!$skip_custom_preprocessing || !$node->getFieldDefinition('title')->isDisplayConfigurable('view'))) {