/** * Performs special search initialization for the result plugin. * * @see Tx_Solr_PluginBase_PluginBase#initializeSearch() */ protected function initializeSearch() { parent::initializeSearch(); $this->initializeAdditionalFilters(); }
/** * Performs special search initialization for the result plugin. * * @see Tx_Solr_pluginbase_PluginBase#initializeSearch() */ protected function initializeSearch() { parent::initializeSearch(); $this->initializeAdditionalFilters(); $rawUserQuery = $this->getRawUserQuery(); // TODO check whether a search has been conducted already? if ($this->solrAvailable && (isset($rawUserQuery) || $this->conf['search.']['initializeWithEmptyQuery'] || $this->conf['search.']['initializeWithQuery'])) { if ($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_solr.']['logging.']['query.']['searchWords']) { \TYPO3\CMS\Core\Utility\GeneralUtility::devLog('received search query', 'solr', 0, array($rawUserQuery)); } $query = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Solr_Query', $rawUserQuery); /* @var $query Tx_Solr_Query */ $resultsPerPage = $this->getNumberOfResultsPerPage(); $query->setResultsPerPage($resultsPerPage); $searchComponents = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Solr_Search_SearchComponentManager')->getSearchComponents(); foreach ($searchComponents as $searchComponent) { $searchComponent->setSearchConfiguration($this->conf['search.']); if ($searchComponent instanceof Tx_Solr_QueryAware) { $searchComponent->setQuery($query); } if ($searchComponent instanceof Tx_Solr_PluginAware) { $searchComponent->setParentPlugin($this); } $searchComponent->initializeSearchComponent(); } if ($this->conf['search.']['initializeWithEmptyQuery'] || $this->conf['search.']['query.']['allowEmptyQuery']) { // empty main query, but using a "return everything" // alternative query in q.alt $query->setAlternativeQuery('*:*'); } if ($this->conf['search.']['initializeWithQuery']) { $query->setAlternativeQuery($this->conf['search.']['initializeWithQuery']); } foreach ($this->additionalFilters as $additionalFilter) { $query->addFilter($additionalFilter); } $this->query = $query; } }