示例#1
0
 /**
  * Initializes the search component.
  *
  * Sets the sorting query parameters
  *
  */
 public function initializeSearchComponent()
 {
     if (!empty($this->searchConfiguration['query.']['sortBy'])) {
         $this->query->addQueryParameter('sort', $this->searchConfiguration['query.']['sortBy']);
     }
     $solrGetParameters = GeneralUtility::_GET('tx_solr');
     if (!empty($this->searchConfiguration['sorting']) && !empty($solrGetParameters['sort']) && preg_match('/^([a-z0-9_]+ (asc|desc)[, ]*)*([a-z0-9_]+ (asc|desc))+$/i', $solrGetParameters['sort'])) {
         $sortHelper = GeneralUtility::makeInstance('ApacheSolrForTypo3\\Solr\\Sorting', $this->searchConfiguration['sorting.']['options.']);
         $sortField = $sortHelper->getSortFieldFromUrlParameter($solrGetParameters['sort']);
         $this->query->setSorting($sortField);
     }
 }
示例#2
0
 /**
  * Modifies the given query and adds the parameters necessary for faceted
  * search.
  *
  * @param Query $query The query to modify
  * @return Query The modified query with faceting parameters
  */
 public function modifyQuery(Query $query)
 {
     $query->setFaceting();
     $this->buildFacetingParameters();
     $this->addFacetQueryFilters();
     foreach ($this->facetParameters as $facetParameter => $value) {
         $query->addQueryParameter($facetParameter, $value);
     }
     foreach ($this->facetFilters as $filter) {
         $query->addFilter($filter);
     }
     return $query;
 }