You are here

function facetapi_bonus_select in Facet API Bonus 7

Generate form for facet.

1 string reference to 'facetapi_bonus_select'
facetapi_bonus_forms in ./facetapi_bonus.module
Implements hook_forms().

File

plugins/facetapi/facetapi_bonus_select.inc, line 20

Code

function facetapi_bonus_select($form, &$form_state, $elements) {
  $default_value = '';

  // Build options from facet elements.
  $options = array();
  foreach ($elements as $element) {
    $key = serialize(array(
      'path' => $element['#path'],
      'query' => $element['#query'],
    ));
    $options[$key] = theme('facetapi_bonus_select_option', array(
      'title' => $element['#markup'],
      'count' => $element['#count'],
    ));
    if ($element['#active']) {
      $default_value = $key;
    }
  }
  if (count($options) == 1) {
    return;
  }
  $form['select'] = array(
    '#type' => 'select',
    '#options' => $options,
    '#attributes' => array(
      'class' => array(
        'ctools-auto-submit',
      ),
    ),
    '#default_value' => $default_value,
  );
  if (empty($default_value)) {
    $form['select']['#empty_option'] = t('- Select -');
  }
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Filter'),
    '#attributes' => array(
      'class' => array(
        'ctools-use-ajax',
        'ctools-auto-submit-click',
      ),
    ),
    '#submit' => array(
      'facetapi_bonus_select_submit',
    ),
  );

  // Lets add autosubmit js functionality from ctools.
  $form['#attached']['js'][] = drupal_get_path('module', 'ctools') . '/js/auto-submit.js';

  // Add javascript that hides Filter button.
  $form['#attached']['js'][] = drupal_get_path('module', 'facetapi_bonus') . '/js/facetapi_bonus_hide_submit.js';
  $form['#attributes']['class'][] = 'facetapi-bonus-select-facet';
  return $form;
}