/** * Passes the appropriate values to the config object from the request during index method. * @return \Wikia\Search\Config */ protected function getSearchConfigFromRequest() { $request = $this->getRequest(); $searchConfig = new Wikia\Search\Config(); $resultsPerPage = $this->isCorporateWiki() ? self::INTERWIKI_RESULTS_PER_PAGE : self::RESULTS_PER_PAGE; $resultsPerPage = empty($this->wg->SearchResultsPerPage) ? $resultsPerPage : $this->wg->SearchResultsPerPage; $searchConfig->setQuery($request->getVal('query', $request->getVal('search')))->setCityId($this->wg->CityId)->setLimit($request->getInt('limit', $resultsPerPage))->setPage($request->getVal('page', 1))->setRank($request->getVal('rank', 'default'))->setHub($request->getVal('hub', false))->setInterWiki($this->isCorporateWiki())->setVideoSearch($request->getVal('videoSearch', false))->setFilterQueriesFromCodes($request->getVal('filters', array()))->setBoostGroup($request->getVal('ab')); if ($this->isCorporateWiki()) { $searchConfig->setLanguageCode($request->getVal('resultsLang')); $languageService = new \Wikia\Search\Language\LanguageService(); $languageService->setLanguageCode($searchConfig->getLanguageCode()); $wikiArticleThreshold = $languageService->getWikiArticlesThreshold(); if (in_array('staff', $this->wg->user->getEffectiveGroups())) { $wikiArticleThreshold = $request->getVal('minArticleCount', $wikiArticleThreshold); } $searchConfig->setXwikiArticleThreshold($wikiArticleThreshold); } $this->setNamespacesFromRequest($searchConfig, $this->wg->User); if (substr($this->getResponse()->getFormat(), 0, 4) == 'json') { $requestedFields = $searchConfig->getRequestedFields(); $searchConfig->setRequestedFields(explode(',', $request->getVal('jsonfields', ''))); } return $searchConfig; }