public function BackgroundImageViewBuilder::buildText in Background Image 8
Same name and namespace in other branches
- 2.x src/BackgroundImageViewBuilder.php \Drupal\background_image\BackgroundImageViewBuilder::buildText()
- 2.0.x src/BackgroundImageViewBuilder.php \Drupal\background_image\BackgroundImageViewBuilder::buildText()
Builds the text render array.
Parameters
\Drupal\background_image\BackgroundImageInterface $background_image: The background image being processed.
\Drupal\background_image\BackgroundImageManagerInterface $manager: The Background Image Manager service.
Return value
array The built render array element.
1 call to BackgroundImageViewBuilder::buildText()
- BackgroundImageViewBuilder::build in src/
BackgroundImageViewBuilder.php - Builds an entity's view; augments entity defaults.
File
- src/
BackgroundImageViewBuilder.php, line 139
Class
Namespace
Drupal\background_imageCode
public function buildText(BackgroundImageInterface $background_image, BackgroundImageManagerInterface $manager) {
$text = trim($background_image
->getSetting('text.value', ''));
// Immediately return if there is no text.
if (!$text) {
$build['#access'] = FALSE;
$build['#cache']['contexts'][] = 'background_image.settings.text';
return $build;
}
$base_class = $manager
->getBaseClass();
$build = [
'#type' => 'processed_text',
'#theme_wrappers' => [
'container__background_image__text',
],
'#attributes' => [
'class' => [
"{$base_class}-text",
],
],
'#format' => $background_image
->getSetting('text.format', 'full_html'),
'#langcode' => $background_image
->language()
->getId(),
'#text' => $text,
];
$build['#cache']['contexts'][] = 'background_image.settings.text';
// Add entity to token data.
$token_data = [
'background_image' => $background_image,
];
$entity = $this
->getEntity($background_image, $manager);
if ($entity) {
$token_data[$entity
->getEntityTypeId()] = $entity instanceof ViewEntityInterface ? $entity
->getExecutable() : $entity;
}
// Allow extensions a chance to alter the text before it's tokenized.
$context = [
'background_image' => $background_image,
'entity' => $entity,
'token_data' => $token_data,
'token_options' => [
'clear' => TRUE,
'langcode' => &$build['#langcode'],
],
];
$this
->moduleHandler()
->alter('background_image_text_build', $build, $context);
\Drupal::service('theme.manager')
->alter('background_image_text_build', $build, $context);
// Perform token replacements.
$build['#text'] = \Drupal::token()
->replace($build['#text'], $context['token_data'], $context['token_options']);
// Allow extensions a chance to alter the text after it's tokenized.
$this
->moduleHandler()
->alter('background_image_text_after_build', $build, $context);
\Drupal::service('theme.manager')
->alter('background_image_text_after_build', $build, $context);
return $build;
}