You are here

public function DateFilter::formProcessDatelist in Visitors 8.2

File

src/Form/DateFilter.php, line 205

Class

DateFilter

Namespace

Drupal\visitors\Form

Code

public function formProcessDatelist($element, &$form_state) {
  if (empty($element['#value']['month']) || empty($element['#value']['day']) || empty($element['#value']['year'])) {
    $element['#value'] = array(
      'month' => $element['#default_value']
        ->format('n'),
      'day' => $element['#default_value']
        ->format('j'),
      'year' => $element['#default_value']
        ->format('Y'),
    );
  }
  $element['#tree'] = TRUE;

  // Output multi-selector for date.
  foreach ($this
    ->_getOrder() as $part) {
    switch ($part) {
      case 'month':
        $options = DateHelper::monthNamesAbbr(TRUE);
        $title = t('Month');
        break;
      case 'day':
        $options = DateHelper::days(TRUE);
        $title = t('Day');
        break;
      case 'year':
        $options = DateHelper::years($this
          ->_getMinYear(), date('Y'), TRUE);
        $title = t('Year');
        break;
    }
    $element['#attributes']['title'] = $title;
    $element[$part] = array(
      '#attributes' => $element['#attributes'],
      '#options' => $options,
      '#required' => $element['#required'],
      '#title' => $title,
      '#title_display' => 'invisible',
      '#type' => 'select',
      '#value' => (int) $element['#value'][$part],
    );
  }
  return $element;
}