You are here

public function ConfigHandlerGroup::buildForm in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/views_ui/src/Form/Ajax/ConfigHandlerGroup.php \Drupal\views_ui\Form\Ajax\ConfigHandlerGroup::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_ui/src/Form/Ajax/ConfigHandlerGroup.php, line 54
Contains \Drupal\views_ui\Form\Ajax\ConfigHandlerGroup.

Class

ConfigHandlerGroup
Provides a form for configuring grouping information for a Views UI handler.

Namespace

Drupal\views_ui\Form\Ajax

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $view = $form_state
    ->get('view');
  $display_id = $form_state
    ->get('display_id');
  $type = $form_state
    ->get('type');
  $id = $form_state
    ->get('id');
  $form = array(
    'options' => array(
      '#tree' => TRUE,
      '#theme_wrappers' => array(
        'container',
      ),
      '#attributes' => array(
        'class' => array(
          'scroll',
        ),
        'data-drupal-views-scroll' => TRUE,
      ),
    ),
  );
  $executable = $view
    ->getExecutable();
  if (!$executable
    ->setDisplay($display_id)) {
    $form['markup'] = array(
      '#markup' => $this
        ->t('Invalid display id @display', array(
        '@display' => $display_id,
      )),
    );
    return $form;
  }
  $executable
    ->initQuery();
  $item = $executable
    ->getHandler($display_id, $type, $id);
  if ($item) {
    $handler = $executable->display_handler
      ->getHandler($type, $id);
    if (empty($handler)) {
      $form['markup'] = array(
        '#markup' => $this
          ->t("Error: handler for @table > @field doesn't exist!", array(
          '@table' => $item['table'],
          '@field' => $item['field'],
        )),
      );
    }
    else {
      $handler
        ->init($executable, $executable->display_handler, $item);
      $types = ViewExecutable::getHandlerTypes();
      $form['#title'] = $this
        ->t('Configure aggregation settings for @type %item', array(
        '@type' => $types[$type]['lstitle'],
        '%item' => $handler
          ->adminLabel(),
      ));
      $handler
        ->buildGroupByForm($form['options'], $form_state);
      $form_state
        ->set('handler', $handler);
    }
    $view
      ->getStandardButtons($form, $form_state, 'views_ui_config_item_group_form');
  }
  return $form;
}