private function restoreActiveStates(Facet $facet, array $activeStates) { foreach ($facet->getFilters() as $key => $filter) { $filter->setActive($activeStates[$key]); } return $facet; }
private function isFilterActive(Facet $facet, $filterLabel) { foreach ($facet->getFilters() as $facetFilter) { if ($facetFilter->getLabel() === $filterLabel) { return $facetFilter->isActive(); } } return false; }
private function copyFacetFilters(Facet $target, Facet $source) { // FIXME: dirty hack, but don't want to touch the Core Facet class at the moment // -- what it needs is a setFilters() method. $refl = new ReflectionClass($target); $filters = $refl->getProperty("filters"); $filters->setAccessible(true); $filters->setValue($target, $source->getFilters()); }
private function getFilterByLabel(Facet $facet, $label) { foreach ($facet->getFilters() as $filter) { if ($filter->getLabel() === $label) { return $filter; } } throw new Exception(sprintf('Could not find a filter labelled `%1$s` in the `%2$s` facet containing `%3$s` filters (%4$s).', $label, $facet->getLabel(), count($facet->getFilters()), implode(", ", array_map(function (Filter $f) { return $f->getLabel(); }, $facet->getFilters())))); }