You are here

function flexiform_handler_filter_tags::value_form in Flexiform 7

Options form subform for setting options.

This should be overridden by all child classes and it must define $form['value'].

Overrides views_handler_filter_many_to_one::value_form

See also

options_form()

File

includes/views/handlers/flexiform_handler_filter_tags.inc, line 31
Contains handler for tags filter on flexiform views.

Class

flexiform_handler_filter_tags
@file Contains handler for tags filter on flexiform views.

Code

function value_form(&$form, &$form_state) {
  if ($this->options['type'] == 'textfield') {
    $default = '';
    if ($this->value) {
      $default = drupal_implode_tags($this->value);
    }
    $form['value'] = array(
      '#title' => t('Select tags'),
      '#type' => 'textfield',
      '#default_value' => $default,
      '#autocomplete_path' => 'admin/structure/flexiforms/autocomplete_tags',
    );
  }
  else {
    $options = array();
    $query = db_select('flexiform_tags', 'ft');
    $query
      ->distinct()
      ->addField('ft', 'tag', 'tag');
    $result = $query
      ->execute()
      ->fetchCol();
    $options = drupal_map_assoc($result);
    $default_value = (array) $this->value;
    $form['value'] = array(
      '#type' => 'select',
      '#title' => t('Select tags'),
      '#multiple' => TRUE,
      '#options' => $options,
      '#size' => min(4, count($options)),
      '#default_value' => $default_value,
    );
  }
}