/** * Check whether we want to try another language. * @param string $term Search term * @return array|null Array of (interwiki, dbname) for another wiki to try, or null */ private function hasSecondaryLanguage($term) { if (empty($GLOBALS['wgCirrusSearchLanguageToWikiMap']) || empty($GLOBALS['wgCirrusSearchWikiToNameMap'])) { // map's empty - no need to bother with detection return null; } // check whether we have second language functionality enabled if (!$GLOBALS['wgCirrusSearchEnableAltLanguage']) { return null; } $lang = Searcher::detectLanguage($term); if (empty($GLOBALS['wgCirrusSearchLanguageToWikiMap'][$lang])) { return null; } $interwiki = $GLOBALS['wgCirrusSearchLanguageToWikiMap'][$lang]; if (empty($GLOBALS['wgCirrusSearchWikiToNameMap'][$interwiki])) { return null; } $interWikiId = $GLOBALS['wgCirrusSearchWikiToNameMap'][$interwiki]; if ($interWikiId == wfWikiID()) { // we're back to the same wiki, no use to try again return null; } return array($interwiki, $interWikiId); }