Example #1
0
 /**
  * Extend the groupby form with group columns.
  */
 public function buildGroupByForm(&$form, FormStateInterface $form_state)
 {
     parent::buildGroupByForm($form, $form_state);
     // With "field API" fields, the column target of the grouping function
     // and any additional grouping columns must be specified.
     $field_columns = array_keys($this->getFieldDefinition()->getColumns());
     $group_columns = array('entity_id' => $this->t('Entity ID')) + array_map('ucfirst', array_combine($field_columns, $field_columns));
     $form['group_column'] = array('#type' => 'select', '#title' => $this->t('Group column'), '#default_value' => $this->options['group_column'], '#description' => $this->t('Select the column of this field to apply the grouping function selected above.'), '#options' => $group_columns);
     $options = array('bundle' => 'Bundle', 'language' => 'Language', 'entity_type' => 'Entity_type');
     // Add on defined fields, noting that they're prefixed with the field name.
     $form['group_columns'] = array('#type' => 'checkboxes', '#title' => $this->t('Group columns (additional)'), '#default_value' => $this->options['group_columns'], '#description' => $this->t('Select any additional columns of this field to include in the query and to group on.'), '#options' => $options + $group_columns);
 }