You are here

public function ExtraFieldBlockPlugin::build in Entity Extra Field 8

Same name and namespace in other branches
  1. 2.0.x src/Plugin/ExtraFieldType/ExtraFieldBlockPlugin.php \Drupal\entity_extra_field\Plugin\ExtraFieldType\ExtraFieldBlockPlugin::build()

Build the render array of the extra field type contents.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity type the extra field is being attached too.

\Drupal\Core\Entity\Display\EntityDisplayInterface $display: The entity display the extra field is apart of.

Return value

array The extra field renderable array.

Overrides ExtraFieldTypePluginInterface::build

File

src/Plugin/ExtraFieldType/ExtraFieldBlockPlugin.php, line 241

Class

ExtraFieldBlockPlugin
Define extra field block type.

Namespace

Drupal\entity_extra_field\Plugin\ExtraFieldType

Code

public function build(EntityInterface $entity, EntityDisplayInterface $display) {
  $block = $this
    ->getBlockTypeInstance();
  if (FALSE === $block) {
    return [];
  }
  if ($block instanceof ContextAwarePluginInterface) {
    try {
      if ($context_mapping = $block
        ->getContextMapping()) {
        $contexts = $this->contextRepository
          ->getRuntimeContexts(array_values($context_mapping));
        $this->contextHandler
          ->applyContextMapping($block, $contexts);
      }
    } catch (\Exception $exception) {
      watchdog_exception('entity_extra_field', $exception);
    }
  }
  return $block
    ->build();
}