From 8dd7247cc7b3d25578ab199426754cdfdee84cc5 Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Wed, 7 May 2014 13:39:34 -0400 Subject: [PATCH] Eliminate duplicate filters in "retain" list. --- .../src/VuFind/View/Helper/Root/SearchBox.php | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/module/VuFind/src/VuFind/View/Helper/Root/SearchBox.php b/module/VuFind/src/VuFind/View/Helper/Root/SearchBox.php index 7a0f06272dc..6eda1ad88b2 100644 --- a/module/VuFind/src/VuFind/View/Helper/Root/SearchBox.php +++ b/module/VuFind/src/VuFind/View/Helper/Root/SearchBox.php @@ -128,25 +128,21 @@ class SearchBox extends \Zend\View\Helper\AbstractHelper public function getFilterDetails($filterList, $checkboxFilters) { $results = array(); - $i = 0; foreach ($filterList as $field => $data) { foreach ($data as $value) { - $results[] = array( - 'id' => 'applied_filter_' . ++$i, - 'value' => "$field:\"$value\"" - ); + $results[] = "$field:\"$value\""; } } - $i = 0; foreach ($checkboxFilters as $current) { - if ($current['selected']) { - $results[] = array( - 'id' => 'applied_checkbox_filter_' . ++$i, - 'value' => $current['filter'] - ); + if ($current['selected'] && !in_array($current['filter'], $results)) { + $results[] = $current['filter']; } } - return $results; + $final = array(); + foreach ($results as $i => $val) { + $final[] = array('id' => 'applied_filter_' . ($i + 1), 'value' => $val); + } + return $final; } /** -- GitLab