fix: [search] Multiple lines didn't correctly get parsed as separate values in the attribute search

pull/3757/head
iglocska 2018-10-11 18:23:04 +02:00
parent 6f86836bdb
commit 24d84c8388
3 changed files with 24 additions and 3 deletions

View File

@ -622,6 +622,17 @@ class AppController extends Controller
}
}
}
if (!empty($options['additional_delimiters'])) {
if (!is_array($options['additional_delimiters'])) {
$options['additional_delimiters'] = array($options['additional_delimiters']);
}
foreach ($data as $k => $v) {
$data[$k] = explode($options['additional_delimiters'][0], str_replace($options['additional_delimiters'], $options['additional_delimiters'][0], $v));
foreach ($data[$k] as $k2 => $value) {
$data[$k][$k2] = trim($data[$k][$k2]);
}
}
}
return $data;
}

View File

@ -1589,7 +1589,8 @@ class AttributesController extends AppController
'request' => $this->request,
'named_params' => $this->params['named'],
'paramArray' => $paramArray,
'ordered_url_params' => compact($paramArray)
'ordered_url_params' => compact($paramArray),
'additional_delimiters' => PHP_EOL
);
$exception = false;
$filters = $this->_harvestParameters($filterData, $exception);

View File

@ -16,7 +16,11 @@
$temp = '';
foreach ($filterOptions as $fo => $text) {
if (!empty($filters[$fo])) {
$temp .= sprintf('%s <b>%s</b>', $text, h($filters[$fo]));
$filter_options_string = $filters[$fo];
if (is_array($filter_options_string)) {
$filter_options_string = implode(' OR ', $filter_options_string);
}
$temp .= sprintf('%s <b>%s</b>', $text, h($filter_options_string));
}
}
echo sprintf("<h4>%s%s</h4>", __("Results for all attributes"), $temp);
@ -61,7 +65,12 @@
$keywordArray = array();
foreach ($toHighlight as $highlightedElement) {
if (!empty($filters[$highlightedElement])) {
$keywordArray[] = $filters[$highlightedElement];
if (!is_array($filters[$highlightedElement])) {
$filters[$highlightedElement] = array($filters[$highlightedElement]);
}
foreach ($filters[$highlightedElement] as $highlightedString) {
$keywordArray[] = $highlightedString;
}
}
}
// build the $replacePairs variable used to highlight the keywords