You are here

public function ContentBuilder::build in Open Social 10.0.x

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_content_block/src/ContentBuilder.php \Drupal\social_content_block\ContentBuilder::build()
  2. 8.6 modules/social_features/social_content_block/src/ContentBuilder.php \Drupal\social_content_block\ContentBuilder::build()
  3. 8.7 modules/social_features/social_content_block/src/ContentBuilder.php \Drupal\social_content_block\ContentBuilder::build()
  4. 8.8 modules/social_features/social_content_block/src/ContentBuilder.php \Drupal\social_content_block\ContentBuilder::build()
  5. 10.3.x modules/social_features/social_content_block/src/ContentBuilder.php \Drupal\social_content_block\ContentBuilder::build()
  6. 10.1.x modules/social_features/social_content_block/src/ContentBuilder.php \Drupal\social_content_block\ContentBuilder::build()
  7. 10.2.x modules/social_features/social_content_block/src/ContentBuilder.php \Drupal\social_content_block\ContentBuilder::build()

Lazy builder callback for displaying a content blocks.

Parameters

int $entity_id: Entity ID.

string $entity_type_id: Entity type id.

string $entity_bundle: The bundle of the entity.

Return value

array A render array for the action link, empty if the user does not have access.

Overrides ContentBuilderInterface::build

1 call to ContentBuilder::build()
SocialContentBlockLandingPageContentBuilder::build in modules/social_features/social_content_block/modules/social_content_block_landing_page/src/Service/SocialContentBlockLandingPageContentBuilder.php
Lazy builder callback for displaying a content blocks.
1 method overrides ContentBuilder::build()
SocialContentBlockLandingPageContentBuilder::build in modules/social_features/social_content_block/modules/social_content_block_landing_page/src/Service/SocialContentBlockLandingPageContentBuilder.php
Lazy builder callback for displaying a content blocks.

File

modules/social_features/social_content_block/src/ContentBuilder.php, line 237

Class

ContentBuilder
Class ContentBuilder.

Namespace

Drupal\social_content_block

Code

public function build($entity_id, $entity_type_id, $entity_bundle) : array {
  if ($entity_type_id !== 'block_content' || $entity_bundle !== 'custom_content_list') {
    return [];
  }
  $block_content = $this->entityTypeManager
    ->getStorage('block_content')
    ->load($entity_id);
  if (!$block_content instanceof BlockContentInterface || $block_content
    ->bundle() !== $entity_bundle) {
    return [];
  }
  $build['content'] = [];
  $build['content']['entities'] = [
    '#lazy_builder' => [
      'social_content_block.content_builder:getEntities',
      [
        $entity_id,
        $entity_bundle,
      ],
    ],
    '#create_placeholder' => TRUE,
  ];
  $link = $this
    ->getLink($block_content);
  if (!empty($link)) {
    $build['content']['link'] = [
      '#type' => 'inline_template',
      '#template' => '<footer class="card__actionbar">{{link}}</footer>',
      '#context' => [
        'link' => $link,
      ],
    ];
  }
  return $build;
}