Skip to content
Snippets Groups Projects
Commit 3ec610a1 authored by Ere Maijala's avatar Ere Maijala Committed by Demian Katz
Browse files

Add hierarchical facet limit (which overrides other limits when set).

parent 304d351e
Branches
Tags
No related merge requests found
......@@ -54,6 +54,13 @@ trait FacetLimitTrait
*/
protected $facetLimitByField = [];
/**
* Hierarchical facet limit when facets are requested.
*
* @var int|null
*/
protected $hierarchicalFacetLimit = null;
/**
* Initialize facet limit from a Config object.
*
......@@ -95,6 +102,28 @@ trait FacetLimitTrait
$this->facetLimitByField = $new;
}
/**
* Get current limit for hierarchical facets
*
* @return int
*/
public function getHierarchicalFacetLimit()
{
return $this->hierarchicalFacetLimit;
}
/**
* Set limit for hierarchical facets
*
* @param int $limit New limit
*
* @return void
*/
public function setHierarchicalFacetLimit($limit)
{
$this->hierarchicalFacetLimit = $limit;
}
/**
* Get the facet limit for the specified field.
*
......@@ -104,6 +133,19 @@ trait FacetLimitTrait
*/
protected function getFacetLimitForField($field)
{
return $this->facetLimitByField[$field] ?? $this->facetLimit;
$limit = $this->facetLimitByField[$field] ?? $this->facetLimit;
// Check for a different limit for hierarchical facets:
if (null !== $this->hierarchicalFacetLimit
&& $limit !== $this->hierarchicalFacetLimit
&& is_callable([$this->getOptions(), 'getHierarchicalFacets'])
) {
$hierarchicalFacets = $this->getOptions()->getHierarchicalFacets();
if (in_array($field, $hierarchicalFacets)) {
$limit = $this->hierarchicalFacetLimit;
}
}
return $limit;
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment