You are here

function synonyms_views_handler_filter_entityreference_synonyms::value_form in Synonyms 7

Provide a simple textfield for equality

Overrides views_handler_filter_numeric::value_form

File

views/synonyms_views_handler_filter_entityreference_synonyms.inc, line 57
Definition of synonyms_views_handler_filter_entityreference_synonyms class.

Class

synonyms_views_handler_filter_entityreference_synonyms
Definition of synonyms friendly entity reference field filter.

Code

function value_form(&$form, &$form_state) {
  parent::value_form($form, $form_state);
  if (isset($form['value']['#type'])) {
    $element =& $form['value'];
  }
  elseif (isset($form['value']['value']['#type'])) {
    $element =& $form['value']['value'];
  }
  if (isset($element)) {
    $field = field_info_field($this->definition['field_name']);
    $entity_type = array_keys($field['bundles']);
    $entity_type = reset($entity_type);
    $bundle = reset($field['bundles'][$entity_type]);
    $instance = field_info_instance($entity_type, $field['field_name'], $bundle);
    switch ($this->options['type']) {
      case 'synonyms_autocomplete':
        $widget = field_info_widget_settings('synonyms_autocomplete_entity');
        $element['#autocomplete_path'] = $widget['synonyms_autocomplete_path'] . '/' . $field['field_name'] . '/' . $instance['entity_type'] . '/' . $instance['bundle'];
        $element['#attached']['js'][drupal_get_path('module', 'synonyms') . '/js/synonyms-autocomplete.js'] = array();
        $element['#attributes']['class'][] = 'synonyms-autocomplete';
        break;
      case 'synonyms_select':
        $element['#type'] = 'select';
        $element['#options'] = synonyms_select_entity_options($field, $instance);
        if (!$this
          ->is_exposed()) {
          $element['#empty_option'] = t('- None -');
        }
        $element['#element_validate'][] = 'synonyms_select_validate';
        $element['#element_validate'][] = 'synonyms_select_views_entityreference_filter_validate';
        unset($element['#size']);
        break;
    }
  }
}