diff --git a/module/VuFind/src/VuFind/Recommend/SideFacets.php b/module/VuFind/src/VuFind/Recommend/SideFacets.php index 158d1256cb1939ab5b5ef0879c84afce9ba2a24d..96fca96f5eba57fa22eb49bf72403101e56d4eea 100644 --- a/module/VuFind/src/VuFind/Recommend/SideFacets.php +++ b/module/VuFind/src/VuFind/Recommend/SideFacets.php @@ -253,6 +253,39 @@ class SideFacets extends AbstractFacets return array_map('trim', explode(',', $this->collapsedFacets)); } + /** + * Get the list of filters to display + * + * @param array $extraFilters Extra filters to add to the list. + * + * @return array + */ + public function getVisibleFilters($extraFilters = array()) + { + // Merge extras into main list: + $filterList = array_merge( + $this->results->getParams()->getFilterList(true), $extraFilters + ); + + // Filter out suppressed values: + $final = array(); + foreach ($filterList as $field => $filters) { + $current = array(); + foreach ($filters as $i => $filter) { + if (!isset($filter['suppressDisplay']) + || !$filter['suppressDisplay'] + ) { + $current[] = $filter; + } + } + if (!empty($current)) { + $final[$field] = $current; + } + } + + return $final; + } + /** * getRangeFacets * diff --git a/themes/blueprint/templates/Recommend/SideFacets.phtml b/themes/blueprint/templates/Recommend/SideFacets.phtml index 91a056b0039a8296281277e5cf78ac171ccf42db..b73a7bcd11f4044767ccefcb0cddc0844c322013 100644 --- a/themes/blueprint/templates/Recommend/SideFacets.phtml +++ b/themes/blueprint/templates/Recommend/SideFacets.phtml @@ -11,9 +11,9 @@ </div> <? endforeach; ?> <? endif; ?> - <? $extraFilters = isset($this->extraSideFacetFilters) ? $this->extraSideFacetFilters : array(); ?> <? $collapsedFacets = $this->recommend->getCollapsedFacets() ?> - <? $filterList = array_merge($results->getParams()->getFilterList(true), $extraFilters); if (!empty($filterList)): ?> + <? $extraFilters = isset($this->extraSideFacetFilters) ? $this->extraSideFacetFilters : array(); ?> + <? $filterList = $this->recommend->getVisibleFilters($extraFilters); if (!empty($filterList)): ?> <strong><?=$this->transEsc('Remove Filters')?></strong> <ul class="filters"> <? foreach ($filterList as $field => $filters): ?> diff --git a/themes/bootstrap/templates/Recommend/SideFacets.phtml b/themes/bootstrap/templates/Recommend/SideFacets.phtml index f8047a758934cbb90ab707fe777b9d5c1fb89429..09915b710c1b3071123a14852b4700394fd9a921 100644 --- a/themes/bootstrap/templates/Recommend/SideFacets.phtml +++ b/themes/bootstrap/templates/Recommend/SideFacets.phtml @@ -14,9 +14,9 @@ </div> <? endforeach; ?> <? endif; ?> -<? $extraFilters = isset($this->extraSideFacetFilters) ? $this->extraSideFacetFilters : array(); ?> <? $collapsedFacets = $this->recommend->getCollapsedFacets() ?> -<? $filterList = array_merge($results->getParams()->getFilterList(true), $extraFilters); if (!empty($filterList)): ?> +<? $extraFilters = isset($this->extraSideFacetFilters) ? $this->extraSideFacetFilters : array(); ?> +<? $filterList = $this->recommend->getVisibleFilters($extraFilters); if (!empty($filterList)): ?> <ul class="nav nav-list"> <li class="nav-header"><?=$this->transEsc('Remove Filters')?></li> <? foreach ($filterList as $field => $filters): ?> diff --git a/themes/jquerymobile/templates/Recommend/SideFacets.phtml b/themes/jquerymobile/templates/Recommend/SideFacets.phtml index bb69c5fefddcf713148cda17727420f8d5784bed..e93c5c27218b0a37512a0fb5c41a0d9d4fad3fc6 100644 --- a/themes/jquerymobile/templates/Recommend/SideFacets.phtml +++ b/themes/jquerymobile/templates/Recommend/SideFacets.phtml @@ -1,5 +1,5 @@ <? $results = $this->recommend->getResults(); ?> -<? $filterList = $results->getParams()->getFilterList(true); if (!empty($filterList)): ?> +<? $filterList = $this->recommend->getVisibleFilters(); if (!empty($filterList)): ?> <ul class="filters" data-role="listview" data-inset="true" data-dividertheme="e"> <li data-role="list-divider"><?=$this->transEsc('adv_search_filters')?></li> <? $i = 0; foreach ($filterList as $field => $filters): ?>