You are here

function apachesolr_views_handler_argument_optionwidget::query in Apache Solr Views 6

Override query() and do some fancy manipulation of the argument so that it is boiled down to the actual field value instead of the nice title

Overrides apachesolr_views_handler_argument::query

File

handlers/apachesolr_views_handler_argument_optionwidget.inc, line 14
Provides an argument handler for optionwidgets so they can use their allowed values

Class

apachesolr_views_handler_argument_optionwidget
@file Provides an argument handler for optionwidgets so they can use their allowed values

Code

function query() {
  $field = $this->definition['cck_field'];
  foreach (content_allowed_values(content_fields($field['field_name'])) as $allowed_value => $nice_text) {
    $options[$allowed_value] = strtolower(str_replace(' ', '-', $nice_text));
  }
  if (!empty($this->options['break_phrase'])) {
    $arguments = explode(',', $this
      ->get_value());
  }
  else {
    $arguments = array(
      $this
        ->get_value(),
    );
  }

  // time to set the arguments to something new
  $new_arguments = array();
  foreach ($arguments as $value) {
    $key = array_search($value, $options);
    if (!empty($key)) {
      $new_arguments[] = $key;
    }
    else {

      // TODO: do we need to do something here?
    }
  }
  foreach ($new_arguments as $facet_value) {
    $this->query
      ->add_filter($this->real_field, apachesolr_views_query::escape_term($facet_value));
  }
}