protected function renderUsedFacets()
 {
     $template = clone $this->parentPlugin->getTemplate();
     $template->workOnSubpart('used_facets');
     $query = $this->search->getQuery();
     $query->setLinkTargetPageId($this->parentPlugin->getLinkTargetPageId());
     $resultParameters = t3lib_div::_GET('tx_solr');
     $filterParameters = array();
     if (isset($resultParameters['filter'])) {
         $filterParameters = (array) array_map('urldecode', $resultParameters['filter']);
     }
     $facetsInUse = array();
     foreach ($filterParameters as $filter) {
         list($filterName, $filterValue) = explode(':', $filter);
         $facetConfiguration = $this->configuration['search.']['faceting.']['facets.'][$filterName . '.'];
         // don't render facets that should not be included in used facets
         if (isset($facetConfiguration['includeInUsedFacets']) && $facetConfiguration['includeInUsedFacets'] == '0') {
             continue;
         }
         $usedFacetRenderer = t3lib_div::makeInstance('tx_solr_facet_UsedFacetRenderer', $filterName, $filterValue, $filter, $facetConfiguration, $this->parentPlugin->getTemplate(), $query);
         $facetToRemove = $usedFacetRenderer->render();
         $facetsInUse[] = $facetToRemove;
     }
     $template->addLoop('facets_in_use', 'remove_facet', $facetsInUse);
     $template->addVariable('remove_all_facets', array('url' => $query->getQueryUrl(array('filter' => array())), 'text' => '###LLL:faceting_removeAllFilters###'));
     $content = '';
     if (count($facetsInUse)) {
         $content = $template->render();
     }
     return $content;
 }
    /**
     * Provides the values for the markers in the simple form template
     *
     * @return array	an array containing values for markers in the simple form template
     */
    public function execute()
    {
        $searchWord = '';
        $testSearchWord = t3lib_div::_GPmerged('tx_solr');
        if (trim($testSearchWord['q'])) {
            $searchWord = trim($this->parentPlugin->piVars['q']);
            $searchWord = t3lib_div::removeXSS($searchWord);
            $searchWord = htmlentities($searchWord, ENT_QUOTES, $GLOBALS['TSFE']->metaCharset);
        }
        $marker = array('action' => $this->cObj->getTypoLink_URL($this->parentPlugin->conf['search.']['targetPage']), 'action_id' => intval($this->parentPlugin->conf['search.']['targetPage']), 'action_language' => intval($GLOBALS['TSFE']->sys_page->sys_language_uid), 'action_language_parameter' => 'L', 'accept-charset' => $GLOBALS['TSFE']->metaCharset, 'q' => $searchWord);
        // TODO maybe move into a form modifier
        if ($this->parentPlugin->conf['suggest']) {
            $this->addSuggestStylesheets();
            $this->addSuggestJavascript();
            $marker['suggest_url'] = '<script type="text/javascript">
				/*<![CDATA[*/
				var tx_solr_suggestUrl = \'' . $this->getSuggestUrl() . '\';
				/*]]>*/
				</script>
			';
        }
        // hook to modify the search form
        if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifySearchForm'])) {
            foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifySearchForm'] as $classReference) {
                $formModifier = t3lib_div::getUserObj($classReference);
                if ($formModifier instanceof tx_solr_FormModifier) {
                    $marker = $formModifier->modifyForm($marker, $this->parentPlugin->getTemplate());
                } else {
                    throw new InvalidArgumentException('Form modifier "' . $classReference . '" must implement the tx_solr_FormModifier interface.', 1262864703);
                }
            }
        }
        return $marker;
    }
 protected function getResultsPerPageSwitch()
 {
     $template = clone $this->parentPlugin->getTemplate();
     $template->workOnSubpart('results_per_page_switch');
     $configuration = tx_solr_Util::getSolrConfiguration();
     $resultsPerPageSwitchOptions = t3lib_div::intExplode(',', $configuration['search.']['results.']['resultsPerPageSwitchOptions']);
     $currentNumberOfResultsShown = $this->parentPlugin->getNumberOfResultsPerPage();
     $selectOptions = array();
     foreach ($resultsPerPageSwitchOptions as $option) {
         $selected = '';
         $selectedClass = '';
         if ($option == $currentNumberOfResultsShown) {
             $selected = ' selected="selected"';
             $selectedClass = ' class="currentNumberOfResults"';
         }
         $selectOptions[] = array('value' => $option, 'selected' => $selected, 'selectedClass' => $selectedClass, 'url' => $this->parentPlugin->pi_linkTP_keepPIvars_url(array('resultsPerPage' => $option)));
     }
     $template->addLoop('options', 'option', $selectOptions);
     $form = array('action' => $this->parentPlugin->pi_linkTP_keepPIvars_url());
     $template->addVariable('form', $form);
     return $template->render();
 }