add datesearch input sanitization and apply filterquery to search
This commit is contained in:
parent
ba3f36d073
commit
13eba6f2c7
|
@ -208,6 +208,12 @@ class SolrSearch implements \Countable, \Iterator, \ArrayAccess, QueryResultInte
|
|||
}
|
||||
}
|
||||
|
||||
// Add filter query for date search
|
||||
if (!empty($this->searchParams['dateFrom']) && !empty($this->searchParams['dateTo'])) {
|
||||
// combine dateFrom and dateTo into range search
|
||||
$params['filterquery'][]['query'] = '{!join from=' . $fields['uid'] . ' to=' . $fields['uid'] . '}'. $fields['date'] . ':[' . $this->searchParams['dateFrom'] . ' TO ' . $this->searchParams['dateTo'] . ']';
|
||||
}
|
||||
|
||||
// Add filter query for faceting.
|
||||
if (isset($this->searchParams['fq']) && is_array($this->searchParams['fq'])) {
|
||||
foreach ($this->searchParams['fq'] as $filterQuery) {
|
||||
|
|
|
@ -106,6 +106,28 @@ class SearchController extends AbstractController
|
|||
$listViewSearch = true;
|
||||
}
|
||||
|
||||
// sanitize date search input
|
||||
if(empty($this->searchParams['dateFrom']) && !empty($this->searchParams['dateTo'])) {
|
||||
$this->searchParams['dateFrom'] = $this->searchParams['dateTo'];
|
||||
}
|
||||
if(empty($this->searchParams['dateTo']) && !empty($this->searchParams['dateFrom'])) {
|
||||
$this->searchParams['dateTo'] = $this->searchParams['dateFrom'];
|
||||
}
|
||||
/* // alternative sanitize logic
|
||||
if(empty($this->searchParams['dateFrom'])) {
|
||||
$this->searchParams['dateFrom'] = "0000-01-01";
|
||||
}
|
||||
if(empty($this->searchParams['dateTo'])) {
|
||||
$this->searchParams['dateTo'] = "9999-12-31";
|
||||
}
|
||||
*/
|
||||
if($this->searchParams['dateFrom'] > $this->searchParams['dateTo']) {
|
||||
$tmpDate = $this->searchParams['dateFrom'];
|
||||
$this->searchParams['dateFrom'] = $this->searchParams['dateTo'];
|
||||
$this->searchParams['dateTo'] = $tmpDate;
|
||||
}
|
||||
|
||||
|
||||
// Pagination of Results: Pass the currentPage to the fluid template to calculate current index of search result.
|
||||
$widgetPage = $this->getParametersSafely('@widget_0');
|
||||
if (empty($widgetPage)) {
|
||||
|
@ -241,6 +263,12 @@ class SearchController extends AbstractController
|
|||
}
|
||||
}
|
||||
|
||||
// add filter query for date search
|
||||
if (!empty($this->searchParams['dateFrom']) && !empty($this->searchParams['dateTo'])) {
|
||||
// combine dateFrom and dateTo into filterquery as range search
|
||||
$search['params']['filterquery'][]['query'] = '{!join from=' . $fields['uid'] . ' to=' . $fields['uid'] . '}' . $fields['date'] . ':[' . $this->searchParams['dateFrom'] . ' TO ' . $this->searchParams['dateTo'] . ']';
|
||||
}
|
||||
|
||||
// Add extended search query.
|
||||
if (
|
||||
!empty($searchParams['extQuery'])
|
||||
|
|
Loading…
Reference in New Issue