You are here

function UIkitViewsPluginStyleAccordion::options_form in UIkit Components 7.3

Same name and namespace in other branches
  1. 7.2 uikit_views/plugins/UIkitViewsPluginStyleAccordion.inc \UIkitViewsPluginStyleAccordion::options_form()

Render the given style.

Overrides views_plugin_style::options_form

File

uikit_views/plugins/UIkitViewsPluginStyleAccordion.inc, line 36
Contains the accordion style plugin.

Class

UIkitViewsPluginStyleAccordion
Style plugin to render each item in UIkit accordion.

Code

function options_form(&$form, &$form_state) {
  parent::options_form($form, $form_state);
  if (isset($form['grouping'])) {
    $title_field_options = array();
    foreach (element_children($form['grouping']) as $key => $value) {
      if (!empty($form['grouping'][$key]['field']['#options']) && is_array($form['grouping'][$key]['field']['#options'])) {
        $title_field_options = array_merge($title_field_options, $form['grouping'][$key]['field']['#options']);
      }
    }
    $form['title_field'] = array(
      '#type' => 'select',
      '#title' => t('Title field'),
      '#options' => $title_field_options,
      '#required' => TRUE,
      '#default_value' => $this->options['title_field'],
      '#description' => t('Select the field to use as the accordian title to create a toggle for the accordion items.'),
    );
    $form['targets'] = array(
      '#type' => 'textfield',
      '#title' => t('CSS selector of the element(s) to toggle.'),
      '#default_value' => $this->options['targets'],
    );
    $form['active'] = array(
      '#type' => 'numberfield',
      '#title' => t('Index of the element to open initially.'),
      '#default_value' => $this->options['active'],
    );
    $form['collapsible'] = array(
      '#type' => 'checkbox',
      '#title' => t('Allow all items to be closed.'),
      '#default_value' => $this->options['collapsible'],
    );
    $form['multiple'] = array(
      '#type' => 'checkbox',
      '#title' => t('Allow multiple open items.'),
      '#default_value' => $this->options['multiple'],
    );
    $form['animation'] = array(
      '#type' => 'checkbox',
      '#title' => t('Reveal item directly (unchecked) or with a transition (checked).'),
      '#default_value' => $this->options['animation'],
    );
    $form['transition'] = array(
      '#type' => 'select',
      '#title' => t('The transition to use when revealing items.'),
      '#required' => TRUE,
      '#default_value' => $this->options['transition'],
      '#description' => t('Uses a keyword from <a href="@transition" target="_blank">easing functions</a>.', array(
        '@transition' => 'https://developer.mozilla.org/en-US/docs/Web/CSS/single-transition-timing-function#Keywords_for_common_timing-functions',
      )),
      '#options' => array(
        'linear' => 'linear',
        'ease' => 'ease',
        'ease-in' => 'ease-in',
        'ease-in-out' => 'ease-in-out',
        'ease-out' => 'ease-out',
        'step-start' => 'step-start',
        'step-end' => 'step-end',
      ),
    );
    $form['duration'] = array(
      '#type' => 'numberfield',
      '#title' => t('Animation duration in milliseconds.'),
      '#default_value' => $this->options['duration'],
    );
  }
}