You are here

public function FormTestTableSelectColspanForm::buildForm in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/system/tests/modules/form_test/src/Form/FormTestTableSelectColspanForm.php \Drupal\form_test\Form\FormTestTableSelectColspanForm::buildForm()
  2. 10 core/modules/system/tests/modules/form_test/src/Form/FormTestTableSelectColspanForm.php \Drupal\form_test\Form\FormTestTableSelectColspanForm::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 FormInterface::buildForm

File

core/modules/system/tests/modules/form_test/src/Form/FormTestTableSelectColspanForm.php, line 24

Class

FormTestTableSelectColspanForm
Builds a form to test table selects with different column spans.

Namespace

Drupal\form_test\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  list($header, $options) = _form_test_tableselect_get_data();

  // Change the data so that the third column has colspan=2.
  $header['three'] = [
    'data' => 'Three',
    'colspan' => 2,
  ];
  unset($header['four']);

  // Set the each row so that column 3 is an array.
  foreach ($options as $name => $row) {
    $options[$name]['three'] = [
      $row['three'],
      $row['four'],
    ];
    unset($options[$name]['four']);
  }

  // Combine cells in row 3.
  $options['row3']['one'] = [
    'data' => $options['row3']['one'],
    'colspan' => 2,
  ];
  unset($options['row3']['two']);
  $options['row3']['three'] = [
    'data' => $options['row3']['three'][0],
    'colspan' => 2,
  ];
  unset($options['row3']['four']);
  return $this
    ->tableselectFormBuilder($form, $form_state, [
    '#header' => $header,
    '#options' => $options,
  ]);
}