/** * Returns an URL that switches sorting to the given sorting field * * @param array $arguments * @return string */ public function execute(array $arguments = array()) { $sortUrl = ''; $configuredSortingFields = $this->configuration['search.']['sorting.']['fields.']; $sortField = $arguments[0]; $urlParameters = t3lib_div::_GP('tx_solr'); $urlSortingParameter = $urlParameters['sort']; list($currentSortByField, $currentSortDirection) = explode(' ', $urlSortingParameter); if (array_key_exists($sortField, $configuredSortingFields) && $configuredSortingFields[$sortField] == 1) { $sortDirection = $this->configuration['search.']['sorting.']['defaultOrder']; $sortParameter = $sortField . ' ' . $sortDirection; // toggle sorting direction for the current sorting field if ($currentSortByField == $sortField) { switch ($currentSortDirection) { case 'asc': $sortDirection = 'desc'; break; case 'desc': $sortDirection = 'asc'; break; } $sortParameter = $sortField . ' ' . $sortDirection; } $sortUrl = $this->query->getQueryUrl(array('sort' => $sortParameter)); } return $sortUrl; }
/** * Builds the url to a facet from a search result. * * @param string $facetToReplace A filter string to use in the link parameters * @return string Url to remooce a facet */ protected function buildReplaceFacetUrl($facetToReplace) { $filterParameters = $this->replaceFacetAndEncodeFilterParameters($facetToReplace); return $this->query->getQueryUrl(array('filter' => $filterParameters)); }