/** * Show single interwiki link * * @param SearchResult $result * @param string $lastInterwiki * @param array $terms * @param string $query * @param array $customCaptions iw prefix -> caption */ protected function showInterwikiHit($result, $lastInterwiki, $terms, $query, $customCaptions) { wfProfileIn(__METHOD__); global $wgContLang, $wgLang; if ($result->isBrokenTitle()) { wfProfileOut(__METHOD__); return "<!-- Broken link in search result -->\n"; } $t = $result->getTitle(); $titleSnippet = $result->getTitleSnippet($terms); if ($titleSnippet == '') { $titleSnippet = null; } $link = $this->sk->linkKnown($t, $titleSnippet); // format redirect if any $redirectTitle = $result->getRedirectTitle(); $redirectText = $result->getRedirectSnippet($terms); $redirect = ''; if (!is_null($redirectTitle)) { if ($redirectText == '') { $redirectText = null; } $redirect = "<span class='searchalttitle'>" . wfMsg('search-redirect', $this->sk->linkKnown($redirectTitle, $redirectText)) . "</span>"; } $out = ""; // display project name if (is_null($lastInterwiki) || $lastInterwiki != $t->getInterwiki()) { if (key_exists($t->getInterwiki(), $customCaptions)) { // captions from 'search-interwiki-custom' $caption = $customCaptions[$t->getInterwiki()]; } else { // default is to show the hostname of the other wiki which might suck // if there are many wikis on one hostname $parsed = parse_url($t->getFullURL()); $caption = wfMsg('search-interwiki-default', $parsed['host']); } // "more results" link (special page stuff could be localized, but we might not know target lang) $searchTitle = Title::newFromText($t->getInterwiki() . ":Special:Search"); $searchLink = $this->sk->linkKnown($searchTitle, wfMsg('search-interwiki-more'), array(), array('search' => $query, 'fulltext' => 'Search')); $out .= "</ul><div class='mw-search-interwiki-project'><span class='mw-search-interwiki-more'>\n\t\t\t\t{$searchLink}</span>{$caption}</div>\n<ul>"; } $out .= "<li>{$link} {$redirect}</li>\n"; wfProfileOut(__METHOD__); return $out; }
/** * Show single interwiki link * * @param SearchResult $result * @param string $lastInterwiki * @param string $query * @param array $customCaptions Interwiki prefix -> caption * * @return string */ protected function showInterwikiHit($result, $lastInterwiki, $query, $customCaptions) { if ($result->isBrokenTitle()) { return ''; } $title = $result->getTitle(); $titleSnippet = $result->getTitleSnippet(); if ($titleSnippet == '') { $titleSnippet = null; } $link = Linker::linkKnown($title, $titleSnippet); // format redirect if any $redirectTitle = $result->getRedirectTitle(); $redirectText = $result->getRedirectSnippet(); $redirect = ''; if (!is_null($redirectTitle)) { if ($redirectText == '') { $redirectText = null; } $redirect = "<span class='searchalttitle'>" . $this->msg('search-redirect')->rawParams(Linker::linkKnown($redirectTitle, $redirectText))->text() . "</span>"; } $out = ""; // display project name if (is_null($lastInterwiki) || $lastInterwiki != $title->getInterwiki()) { if (array_key_exists($title->getInterwiki(), $customCaptions)) { // captions from 'search-interwiki-custom' $caption = $customCaptions[$title->getInterwiki()]; } else { // default is to show the hostname of the other wiki which might suck // if there are many wikis on one hostname $parsed = wfParseUrl($title->getFullURL()); $caption = $this->msg('search-interwiki-default', $parsed['host'])->text(); } // "more results" link (special page stuff could be localized, but we might not know target lang) $searchTitle = Title::newFromText($title->getInterwiki() . ":Special:Search"); $searchLink = Linker::linkKnown($searchTitle, $this->msg('search-interwiki-more')->text(), array(), array('search' => $query, 'fulltext' => 'Search')); $out .= "</ul><div class='mw-search-interwiki-project'><span class='mw-search-interwiki-more'>\n\t\t\t\t{$searchLink}</span>{$caption}</div>\n<ul>"; } $out .= "<li>{$link} {$redirect}</li>\n"; return $out; }