/**
  * 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;
 }
Beispiel #2
0
 /**
  * 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;
 }