public function Renderer::renderPlaceholder in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/Render/Renderer.php \Drupal\Core\Render\Renderer::renderPlaceholder()
- 10 core/lib/Drupal/Core/Render/Renderer.php \Drupal\Core\Render\Renderer::renderPlaceholder()
Renders final HTML for a placeholder.
Renders the placeholder in isolation.
Parameters
string $placeholder: An attached placeholder to render. (This must be a key of one of the values of $elements['#attached']['placeholders'].)
array $elements: The structured array describing the data to be rendered.
Return value
array The updated $elements.
Overrides RendererInterface::renderPlaceholder
See also
\Drupal\Core\Render\RendererInterface::render()
1 call to Renderer::renderPlaceholder()
- Renderer::replacePlaceholders in core/
lib/ Drupal/ Core/ Render/ Renderer.php - Replaces placeholders.
File
- core/
lib/ Drupal/ Core/ Render/ Renderer.php, line 163
Class
- Renderer
- Turns a render array into a HTML string.
Namespace
Drupal\Core\RenderCode
public function renderPlaceholder($placeholder, array $elements) {
// Get the render array for the given placeholder
$placeholder_elements = $elements['#attached']['placeholders'][$placeholder];
// Prevent the render array from being auto-placeholdered again.
$placeholder_elements['#create_placeholder'] = FALSE;
// Render the placeholder into markup.
$markup = $this
->renderPlain($placeholder_elements);
// Replace the placeholder with its rendered markup, and merge its
// bubbleable metadata with the main elements'.
$elements['#markup'] = Markup::create(str_replace($placeholder, $markup, $elements['#markup']));
$elements = $this
->mergeBubbleableMetadata($elements, $placeholder_elements);
// Remove the placeholder that we've just rendered.
unset($elements['#attached']['placeholders'][$placeholder]);
return $elements;
}