You are here

public function EntityEditFormBlock::build in Entityform block 8

Builds and returns the renderable array for this block plugin.

If a block should not be rendered because it has no content, then this method must also ensure to return no content: it must then only return an empty array, or an empty array with #cache set (with cacheability metadata indicating the circumstances for it being empty).

Return value

array A renderable array representing the content of the block.

Overrides BlockPluginInterface::build

See also

\Drupal\block\BlockViewBuilder

File

src/Plugin/Block/EntityEditFormBlock.php, line 147

Class

EntityEditFormBlock
Provides a block for creating a new content entity.

Namespace

Drupal\entityform_block\Plugin\Block

Code

public function build() {
  $values = array();

  // Specify selected bundle if the entity has bundles.
  if ($this->entityTypeManager
    ->getDefinition($this->configuration['entity_type'])
    ->hasKey('bundle')) {
    $bundle_key = $this->entityTypeManager
      ->getDefinition($this->configuration['entity_type'])
      ->getKey('bundle');
    $values = array(
      $bundle_key => $this->configuration['bundle'],
    );
  }
  $entity = $this->entityTypeManager
    ->getStorage($this->configuration['entity_type'])
    ->create($values);
  if ($entity instanceof EntityOwnerInterface) {
    $entity
      ->setOwnerId(\Drupal::currentUser()
      ->id());
  }
  $form = $this->entityTypeManager
    ->getFormObject($this->configuration['entity_type'], 'default')
    ->setEntity($entity);
  return \Drupal::formBuilder()
    ->getForm($form);
}