'entity', * '#entity_type' => 'node', * '#entity_id' => 1, * '#view_mode' => 'teaser, * '#langcode' => 'en', * ]; * @endcode * * @RenderElement("entity") */ class Entity extends RenderElement { /** * {@inheritdoc} */ public function getInfo() { return [ '#pre_render' => [ [get_class($this), 'preRenderEntityElement'], ], '#view_mode' => 'full', '#langcode' => NULL, ]; } /** * Entity element pre render callback. * * @param array $element * An associative array containing the properties of the entity element. * * @return array * The modified element. */ public static function preRenderEntityElement(array $element) { $entity_type_manager = \Drupal::entityTypeManager(); $entity = $entity_type_manager ->getStorage($element['#entity_type']) ->load($element['#entity_id']); if ($entity && $entity->access('view')) { $element['entity'] = $entity_type_manager ->getViewBuilder($element['#entity_type']) ->view($entity, $element['#view_mode'], $element['#langcode']); } return $element; } }