/**
  * 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;
 }
예제 #2
0
 /**
  * @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;
 }
예제 #3
0
 /**
  * @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;
 }