function TranslateFilterForm::buildForm

Same name and namespace in other branches
  1. 9 core/modules/locale/src/Form/TranslateFilterForm.php \Drupal\locale\Form\TranslateFilterForm::buildForm()
  2. 8.9.x core/modules/locale/src/Form/TranslateFilterForm.php \Drupal\locale\Form\TranslateFilterForm::buildForm()
  3. 10 core/modules/locale/src/Form/TranslateFilterForm.php \Drupal\locale\Form\TranslateFilterForm::buildForm()

Overrides FormInterface::buildForm

File

core/modules/locale/src/Form/TranslateFilterForm.php, line 24

Class

TranslateFilterForm
Provides a filtered translation edit form.

Namespace

Drupal\locale\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
    $filters = $this->translateFilters();
    $filter_values = $this->translateFilterValues();
    $form['#attached']['library'][] = 'locale/drupal.locale.admin';
    $form['filters'] = [
        '#type' => 'details',
        '#title' => $this->t('Filter translatable strings'),
        '#open' => TRUE,
        '#attributes' => [
            'class' => [
                'clearfix',
            ],
        ],
    ];
    foreach ($filters as $key => $filter) {
        // Special case for 'string' filter.
        if ($key == 'string') {
            $form['filters']['status']['string'] = [
                '#type' => 'search',
                '#title' => $filter['title'],
                '#description' => $filter['description'],
                '#default_value' => $filter_values[$key],
            ];
        }
        else {
            $empty_option = $filter['options'][$filter['default']] ?? '- None -';
            $form['filters']['status'][$key] = [
                '#title' => $filter['title'],
                '#type' => 'select',
                '#empty_value' => $filter['default'],
                '#empty_option' => $empty_option,
                '#size' => 0,
                '#options' => $filter['options'],
                '#default_value' => $filter_values[$key],
            ];
            if (isset($filter['states'])) {
                $form['filters']['status'][$key]['#states'] = $filter['states'];
            }
        }
    }
    $form['filters']['actions'] = [
        '#type' => 'actions',
        '#attributes' => [
            'class' => [
                'container-inline',
            ],
        ],
    ];
    $form['filters']['actions']['submit'] = [
        '#type' => 'submit',
        '#value' => $this->t('Filter'),
    ];
    if ($this->getRequest()
        ->getSession()
        ->has('locale_translate_filter')) {
        $form['filters']['actions']['reset'] = [
            '#type' => 'submit',
            '#value' => $this->t('Reset'),
            '#submit' => [
                '::resetForm',
            ],
        ];
    }
    return $form;
}

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