function ViewsForm::buildForm
Same name in other branches
- 8.9.x core/modules/views/src/Form/ViewsForm.php \Drupal\views\Form\ViewsForm::buildForm()
- 10 core/modules/views/src/Form/ViewsForm.php \Drupal\views\Form\ViewsForm::buildForm()
- 11.x core/modules/views/src/Form/ViewsForm.php \Drupal\views\Form\ViewsForm::buildForm()
Overrides FormInterface::buildForm
File
-
core/
modules/ views/ src/ Form/ ViewsForm.php, line 144
Class
- ViewsForm
- Provides a base class for single- or multistep view forms.
Namespace
Drupal\views\FormCode
public function buildForm(array $form, FormStateInterface $form_state, ViewExecutable $view = NULL, $output = []) {
if (!($step = $form_state->get('step'))) {
$step = 'views_form_views_form';
$form_state->set('step', $step);
}
$form_state->set([
'step_controller',
'views_form_views_form',
], 'Drupal\\views\\Form\\ViewsFormMainForm');
// Views forms without view arguments return the same Base Form ID and
// Form ID. Base form ID should only be added when different.
if ($this->getBaseFormId() !== $this->getFormId()) {
$form_state->addBuildInfo('base_form_id', $this->getBaseFormId());
}
$form = [];
$query = $this->requestStack
->getCurrentRequest()->query
->all();
$query = UrlHelper::filterQueryParameters($query, [], '');
$options = [
'query' => $query,
];
$form['#action'] = $view->hasUrl() ? $view->getUrl()
->setOptions($options)
->toString() : Url::fromRoute('<current>')->setOptions($options)
->toString();
// Tell the preprocessor whether it should hide the header, footer, pager,
// etc.
$form['show_view_elements'] = [
'#type' => 'value',
'#value' => $step == 'views_form_views_form' ? TRUE : FALSE,
];
$form_object = $this->getFormObject($form_state);
$form += $form_object->buildForm($form, $form_state, $view, $output);
return $form;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.