public function FacetapiUrlProcessorStandard::getQueryString in Facet API 7.2
Same name and namespace in other branches
- 6.3 plugins/facetapi/url_processor_standard.inc \FacetapiUrlProcessorStandard::getQueryString()
- 7 plugins/facetapi/url_processor_standard.inc \FacetapiUrlProcessorStandard::getQueryString()
Implements FacetapiUrlProcessor::getQueryString().
Overrides FacetapiUrlProcessor::getQueryString
File
- plugins/
facetapi/ url_processor_standard.inc, line 44 - The standard url processor class.
Class
- FacetapiUrlProcessorStandard
- Url processor plugin that retrieves facet data from the query string.
Code
public function getQueryString(array $facet, array $values, $active) {
$qstring = $this->params;
$active_items = $this->adapter
->getActiveItems($facet);
// Appends to qstring if inactive, removes if active.
foreach ($values as $value) {
if ($active && isset($active_items[$value])) {
unset($qstring[$this->filterKey][$active_items[$value]['pos']]);
}
elseif (!$active) {
$field_alias = rawurlencode($facet['field alias']);
// Strips all other filters for this facet if limit option is set.
if ($this
->limitActiveItems($facet)) {
foreach ($qstring[$this->filterKey] as $pos => $filter) {
if (0 === strpos($filter, $field_alias)) {
unset($qstring[$this->filterKey][$pos]);
}
}
}
// Adds the filter to the query string.
$qstring[$this->filterKey][] = $field_alias . ':' . $value;
}
}
// Removes duplicates, resets array keys and returns query string.
// @see http://drupal.org/node/1340528
$qstring[$this->filterKey] = array_values(array_unique($qstring[$this->filterKey]));
return array_filter($qstring);
}