/** * Generates the options for the results per page switch. * * @return array Array of results per page switch options. */ public function getResultsPerPageOptions() { $resultsPerPageOptions = array(); $resultsPerPageSwitchOptions = GeneralUtility::intExplode(',', $this->configuration['search.']['results.']['resultsPerPageSwitchOptions'], true); $currentNumberOfResultsShown = $this->parentPlugin->getNumberOfResultsPerPage(); $queryLinkBuilder = GeneralUtility::makeInstance('ApacheSolrForTypo3\\Solr\\Query\\LinkBuilder', $this->parentPlugin->getSearch()->getQuery()); $queryLinkBuilder->removeUnwantedUrlParameter('resultsPerPage'); $queryLinkBuilder->setLinkTargetPageId($this->parentPlugin->getLinkTargetPageId()); foreach ($resultsPerPageSwitchOptions as $option) { $selected = ''; $selectedClass = ''; if ($option == $currentNumberOfResultsShown) { $selected = ' selected="selected"'; $selectedClass = ' class="currentNumberOfResults"'; } $resultsPerPageOptions[] = array('value' => $option, 'selected' => $selected, 'selectedClass' => $selectedClass, 'url' => $queryLinkBuilder->getQueryUrl(array('resultsPerPage' => $option))); } return $resultsPerPageOptions; }
/** * @param $numberOfResults * @return string */ protected function getPageBrowser($numberOfResults) { $pageBrowserMarkup = ''; $solrPageBrowserConfiguration = array(); if (isset($this->configuration['search.']['results.']['pagebrowser.'])) { $solrPageBrowserConfiguration = $this->configuration['search.']['results.']['pagebrowser.']; } if ($solrPageBrowserConfiguration['enabled']) { $resultsPerPage = $this->parentPlugin->getNumberOfResultsPerPage(); $numberOfPages = intval($numberOfResults / $resultsPerPage) + ($numberOfResults % $resultsPerPage == 0 ? 0 : 1); $solrGetParameters = GeneralUtility::_GET('tx_solr'); if (!is_array($solrGetParameters)) { $solrGetParameters = array(); } $currentPage = $solrGetParameters['page']; unset($solrGetParameters['page']); $pageBrowserConfiguration = array_merge($solrPageBrowserConfiguration, array('numberOfPages' => $numberOfPages, 'currentPage' => $currentPage, 'extraQueryString' => GeneralUtility::implodeArrayForUrl('tx_solr', $solrGetParameters), 'templateFile' => $this->configuration['templateFiles.']['pagebrowser'])); $pageBrowser = GeneralUtility::makeInstance('ApacheSolrForTypo3\\Solr\\Plugin\\Results\\PageBrowser', $pageBrowserConfiguration, $this->getPageBrowserLabels()); $pageBrowserMarkup = $pageBrowser->render(); } return $pageBrowserMarkup; }
/** * @param $numberOfResults * @return string */ protected function getPageBrowser($numberOfResults) { $pageBrowser = ''; $solrPageBrowserConfiguration = array(); if (isset($this->configuration['search.']['results.']['pagebrowser.'])) { $solrPageBrowserConfiguration = $this->configuration['search.']['results.']['pagebrowser.']; } if ($solrPageBrowserConfiguration['enabled']) { $resultsPerPage = $this->parentPlugin->getNumberOfResultsPerPage(); $numberOfPages = intval($numberOfResults / $resultsPerPage) + ($numberOfResults % $resultsPerPage == 0 ? 0 : 1); $solrGetParameters = GeneralUtility::_GET('tx_solr'); if (!is_array($solrGetParameters)) { $solrGetParameters = array(); } unset($solrGetParameters['page']); $pageBrowserConfiguration = array_merge($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_pagebrowse_pi1.'], $solrPageBrowserConfiguration, array('pageParameterName' => 'tx_solr|page', 'numberOfPages' => $numberOfPages, 'extraQueryString' => GeneralUtility::implodeArrayForUrl('tx_solr', $solrGetParameters), 'templateFile' => $this->configuration['templateFiles.']['pagebrowser'])); // Get page browser $cObj = GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjectRenderer'); $cObj->start(array(), ''); $cObjectType = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_pagebrowse_pi1']; $pageBrowser = $cObj->cObjGetSingle($cObjectType, $pageBrowserConfiguration); } return $pageBrowser; }