You are here

public function BlockFieldForm::buildForm in Display Suite 8.3

Same name and namespace in other branches
  1. 8.4 src/Form/BlockFieldForm.php \Drupal\ds\Form\BlockFieldForm::buildForm()
  2. 8.2 src/Form/BlockFieldForm.php \Drupal\ds\Form\BlockFieldForm::buildForm()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides FieldFormBase::buildForm

File

src/Form/BlockFieldForm.php, line 31

Class

BlockFieldForm
Configure block fields.

Namespace

Drupal\ds\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, $field_key = '') {
  $form = parent::buildForm($form, $form_state, $field_key);
  $field = $this->field;
  $manager = \Drupal::service('plugin.manager.block');
  $blocks = [];
  foreach ($manager
    ->getDefinitions() as $plugin_id => $plugin_definition) {
    $blocks[$plugin_id] = $plugin_definition['admin_label'];
  }
  asort($blocks);
  $form['block_identity']['block'] = [
    '#type' => 'select',
    '#options' => $blocks,
    '#title' => $this
      ->t('Block'),
    '#required' => TRUE,
    '#default_value' => isset($field['properties']['block']) ? $field['properties']['block'] : '',
  ];
  $form['use_block_title'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Use block title as the field label'),
    '#default_value' => isset($field['properties']['use_block_title']) ? $field['properties']['use_block_title'] : FALSE,
    '#weight' => 90,
  ];
  $form['add_block_wrappers'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Add block wrappers and classes'),
    '#default_value' => isset($field['properties']['add_block_wrappers']) ? $field['properties']['add_block_wrappers'] : FALSE,
    '#description' => $this
      ->t('Render using the block theme hook to add the block wrappers and clases.'),
    '#weight' => 91,
  ];
  return $form;
}