You are here

public function BlockFieldForm::buildForm in Display Suite 8.2

Same name and namespace in other branches
  1. 8.4 src/Form/BlockFieldForm.php \Drupal\ds\Form\BlockFieldForm::buildForm()
  2. 8.3 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 = array();
  foreach ($manager
    ->getDefinitions() as $plugin_id => $plugin_definition) {
    $blocks[$plugin_id] = $plugin_definition['admin_label'];
  }
  asort($blocks);
  $form['block_identity']['block'] = array(
    '#type' => 'select',
    '#options' => $blocks,
    '#title' => $this
      ->t('Block'),
    '#required' => TRUE,
    '#default_value' => isset($field['properties']['block']) ? $field['properties']['block'] : '',
  );
  $form['use_block_title'] = array(
    '#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,
  );
  return $form;
}