You are here

public function ViewsForm::buildForm in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/views/src/Form/ViewsForm.php \Drupal\views\Form\ViewsForm::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/views/src/Form/ViewsForm.php, line 119
Contains \Drupal\views\Form\ViewsForm.

Class

ViewsForm
Provides a base class for single- or multistep view forms.

Namespace

Drupal\views\Form

Code

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');
  $form = array();
  $query = $this->requestStack
    ->getCurrentRequest()->query
    ->all();
  $query = UrlHelper::filterQueryParameters($query, array(), '');
  $options = array(
    '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'] = array(
    '#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;
}