/** * Process the search query. * * @param JDatabaseQuery $query The query object. * @param array $searches The search values. * * @return JDatabaseQuery The db query object. */ protected function processSearches(JDatabaseQuery $query, $searches = array()) { $searches = $searches ?: $this->state->get('search', array()); $searches = ArrayHelper::flatten($searches); $searches = $this->filterDataFields($searches); $searches = $this->mapDataFields($searches); $searchHelper = $this->getSearchHelper(); $this->configureSearches($searchHelper); $query = $searchHelper->execute($query, $searches); return $query; }