function DatetimeElementFormTest::buildForm

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/KernelTests/Core/Datetime/DatetimeElementFormTest.php \Drupal\KernelTests\Core\Datetime\DatetimeElementFormTest::buildForm()
  2. 10 core/tests/Drupal/KernelTests/Core/Datetime/DatetimeElementFormTest.php \Drupal\KernelTests\Core\Datetime\DatetimeElementFormTest::buildForm()
  3. 9 core/tests/Drupal/KernelTests/Core/Datetime/DatetimeElementFormTest.php \Drupal\KernelTests\Core\Datetime\DatetimeElementFormTest::buildForm()
  4. 8.9.x core/tests/Drupal/KernelTests/Core/Datetime/DatetimeElementFormTest.php \Drupal\KernelTests\Core\Datetime\DatetimeElementFormTest::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/tests/Drupal/KernelTests/Core/Datetime/DatetimeElementFormTest.php, line 82

Class

DatetimeElementFormTest
Tests DatetimeElement functionality.

Namespace

Drupal\KernelTests\Core\Datetime

Code

public function buildForm(array $form, FormStateInterface $form_state, string $date_callback = 'datetimeDateCallbackTrusted', string $time_callback = 'datetimeTimeCallbackTrusted') : array {
  $form['datetime_element'] = [
    '#title' => 'datelist test',
    '#type' => 'datetime',
    '#default_value' => new DrupalDateTime('2000-01-01 00:00:00'),
    '#date_date_format' => 'Y-m-d',
    '#date_time_format' => 'H:i:s',
    '#date_date_element' => 'HTML Date',
    '#date_time_element' => 'HTML Time',
    '#date_increment' => 1,
    '#date_date_callbacks' => [
      [
        $this,
        $date_callback,
      ],
    ],
    '#date_time_callbacks' => [
      [
        $this,
        $time_callback,
      ],
    ],
  ];
  // Element without specifying the default value.
  $form['simple_datetime_element'] = [
    '#type' => 'datetime',
    '#date_date_format' => 'Y-m-d',
    '#date_time_format' => 'H:i:s',
    '#date_date_element' => 'HTML Date',
    '#date_time_element' => 'HTML Time',
  ];
  // Element with a year range.
  $form['range_datetime_element'] = [
    '#title' => 'range_datetime_element',
    '#type' => 'datetime',
    '#date_date_format' => 'Y-m-d',
    '#date_time_format' => 'H:i:s',
    '#date_date_element' => 'HTML Date',
    '#date_time_element' => 'HTML Time',
    '#date_year_range' => '1850:3000',
  ];
  // Element with #required_error.
  $form['datetime_required_error'] = [
    '#type' => 'datetime',
    '#title' => 'Datetime with required error',
    '#date_date_format' => 'Y-m-d',
    '#date_time_format' => 'H:i:s',
    '#date_date_element' => 'HTML Date',
    '#date_time_element' => 'HTML Time',
    '#required' => TRUE,
    '#required_error' => 'Custom required error message.',
  ];
  // Element without #required_error.
  $form['datetime_no_required_error'] = [
    '#type' => 'datetime',
    '#title' => 'Datetime without required error',
    '#date_date_format' => 'Y-m-d',
    '#date_time_format' => 'H:i:s',
    '#date_date_element' => 'HTML Date',
    '#date_time_element' => 'HTML Time',
    '#required' => TRUE,
  ];
  $form['submit'] = [
    '#type' => 'submit',
    '#value' => 'Submit',
  ];
  return $form;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.