You are here

function views_complex_grouping_style_plugin::options_form in Views Complex Grouping 7

Overrides parent::options_form().

Add our options to the form.

Overrides views_plugin_style::options_form

File

./views_complex_grouping_style_plugin.inc, line 15
views_grouping_complex_style_plugin.inc Our handler.

Class

views_complex_grouping_style_plugin
@file views_grouping_complex_style_plugin.inc Our handler.

Code

function options_form(&$form, &$form_state) {
  parent::options_form($form, $form_state);
  $field_labels = $this->display->handler
    ->get_field_labels();
  foreach ($form['grouping'] as $index => $info) {
    $grouping_fields_default = isset($this->options['grouping'][$index]['grouping-complex']['grouping-fields']) ? $this->options['grouping'][$index]['grouping-complex']['grouping-fields'] : NULL;
    $grouping_limit_default = isset($this->options['grouping'][$index]['grouping-complex']['grouping-limit']) ? $this->options['grouping'][$index]['grouping-complex']['grouping-limit'] : 1;
    $grouping_offset_default = isset($this->options['grouping'][$index]['grouping-complex']['grouping-offset']) ? $this->options['grouping'][$index]['grouping-complex']['grouping-offset'] : 1;
    $form['grouping'][$index]['grouping-complex'] = array(
      '#type' => 'fieldset',
      '#title' => t('Limit and extra fields for grouping field Nr.!num', array(
        '!num' => $index + 1,
      )),
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
      'grouping-fields' => array(
        '#type' => 'select',
        '#multiple' => TRUE,
        '#title' => t('Selected'),
        '#options' => $field_labels,
        '#default_value' => $grouping_fields_default,
        '#description' => t('Select which fields will be displayed alongside the field Nr.!num', array(
          '!num' => $index + 1,
        )),
      ),
      'grouping-limit' => array(
        '#type' => 'textfield',
        '#title' => t('Items to display:'),
        '#default_value' => $grouping_limit_default,
        '#size' => 6,
        '#element_validate' => array(
          'views_complex_grouping_validate',
        ),
        '#description' => t('The number of rows to show under the field Nr.!num. Leave 0 to show all of them.', array(
          '!num' => $index + 1,
        )),
      ),
      'grouping-offset' => array(
        '#type' => 'textfield',
        '#title' => t('Offset:'),
        '#default_value' => $grouping_offset_default,
        '#size' => 6,
        '#element_validate' => array(
          'views_complex_grouping_validate',
        ),
        '#description' => t('The row to start on.'),
      ),
    );
  }
}