X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialSearch.php;h=f71f678c69ac5b4ac78f192f4b5163bd81d79705;hb=9187a2b4b151664b628820ba110135b09d64af1c;hp=3dcf3b09e02a6ee13be6fc8cfb57f4cb751bdbb8;hpb=584883b69e45754ea7d40641013c84e70af60f26;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index 3dcf3b09e0..f71f678c69 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -41,7 +41,7 @@ function wfSpecialSearch( $par = '' ) { || !is_null( $wgRequest->getVal( 'offset' )) || !is_null( $wgRequest->getVal( 'searchx' )) ) { - $searchPage->showResults( $search, 'search' ); + $searchPage->showResults( $search ); } else { $searchPage->goResult( $search ); } @@ -113,9 +113,11 @@ class SpecialSearch { * @param string $term */ public function showResults( $term ) { - global $wgOut, $wgDisableTextSearch, $wgContLang; + global $wgOut, $wgUser, $wgDisableTextSearch, $wgContLang; wfProfileIn( __METHOD__ ); + $sk = $wgUser->getSkin(); + $this->searchEngine = SearchEngine::create(); $search =& $this->searchEngine; $search->setLimitOffset( $this->limit, $this->offset ); @@ -166,8 +168,9 @@ class SpecialSearch { array( 'search' => $textMatches->getSuggestionQuery(), 'fulltext' => wfMsg('search') ), $this->powerSearchOptions() ); - $suggestLink = ''. - $textMatches->getSuggestionSnippet().''; + $suggestLink = $sk->makeKnownLinkObj( $st, + $textMatches->getSuggestionSnippet(), + $stParams ); $this->didYouMeanHtml = '
'.wfMsg('search-suggest',$suggestLink).'
'; } @@ -384,7 +387,7 @@ class SpecialSearch { * @param array $terms terms to highlight */ protected function showHit( $result, $terms ) { - global $wgContLang, $wgLang; + global $wgContLang, $wgLang, $wgUser; wfProfileIn( __METHOD__ ); if( $result->isBrokenTitle() ) { @@ -392,6 +395,7 @@ class SpecialSearch { return "\n"; } + $sk = $wgUser->getSkin(); $t = $result->getTitle(); $link = $this->sk->makeKnownLinkObj( $t, $result->getTitleSnippet($terms)); @@ -457,8 +461,8 @@ class SpecialSearch { array('search' => wfMsgForContent('searchrelated').':'.$t->getPrefixedText(), 'fulltext' => wfMsg('search') )); - $related = ' -- '. - wfMsg('search-relatedarticle').''; + $related = ' -- ' . $sk->makeKnownLinkObj( $st, + wfMsg('search-relatedarticle'), $stParams ); } // Include a thumbnail for media files... @@ -606,7 +610,8 @@ class SpecialSearch { $redirect = Xml::check( 'redirs', $this->searchRedirects, array( 'value' => '1', 'id' => 'redirs' ) ); $redirectLabel = Xml::label( wfMsg( 'powersearch-redir' ), 'redirs' ); - $searchField = Xml::input( 'search', 50, $term, array( 'type' => 'text', 'id' => 'powerSearchText' ) ); + $searchField = Xml::inputLabel( wfMsg('powersearch-field'), 'search', 'powerSearchText', 50, $term, + array( 'type' => 'text') ); $searchButton = Xml::submitButton( wfMsg( 'powersearch' ), array( 'name' => 'fulltext' )) . "\n"; $searchTitle = SpecialPage::getTitleFor( 'Search' ); @@ -626,10 +631,9 @@ class SpecialSearch { "
\n". $redirectText ."\n". "
". - wfMsgExt( 'powersearch-field', array( 'parseinline' ) ) . - " " . $searchField . " " . + Xml::hidden( 'fulltext', 'Advanced search' ) . "\n" . $searchButton . "
". ""; @@ -761,6 +765,7 @@ class SpecialSearch { $out .= Xml::hidden( "redirs", (int)$this->searchRedirects ); // Term box $out .= Xml::input( 'search', 50, $term, array( 'type' => 'text', 'id' => 'searchText' ) ) . "\n"; + $out .= Xml::hidden( 'fulltext', 'Search' ); $out .= Xml::submitButton( wfMsg( 'searchbutton' ), array( 'name' => 'fulltext' ) ); $out .= ' (' . wfMsgExt('searchmenu-help',array('parseinline') ) . ')'; $out .= Xml::closeElement( 'form' ); @@ -902,21 +907,21 @@ class SpecialSearchOld { } } - $wgOut->wrapWikiMsg( "==$1==\n", 'notitlematches' ); + $extra = $wgOut->parse( '=='.wfMsgNoTrans( 'notitlematches' )."==\n" ); if( $t->quickUserCan( 'create' ) && $t->quickUserCan( 'edit' ) ) { - $wgOut->addWikiMsg( 'noexactmatch', wfEscapeWikiText( $term ) ); + $extra .= wfMsgExt( 'noexactmatch', 'parse', wfEscapeWikiText( $term ) ); } else { - $wgOut->addWikiMsg( 'noexactmatch-nocreate', wfEscapeWikiText( $term ) ); + $extra .= wfMsgExt( 'noexactmatch-nocreate', 'parse', wfEscapeWikiText( $term ) ); } - return $this->showResults( $term ); + $this->showResults( $term, $extra ); } /** * @param string $term - * @public + * @param string $extra Extra HTML to add after "did you mean" */ - function showResults( $term ) { + public function showResults( $term, $extra = '' ) { wfProfileIn( __METHOD__ ); global $wgOut, $wgUser; $sk = $wgUser->getSkin(); @@ -927,10 +932,31 @@ class SpecialSearchOld { $search->showRedirects = $this->searchRedirects; $search->prefix = $this->mPrefix; $term = $search->transformSearchTerm($term); - + $this->setupPage( $term ); - $wgOut->addWikiMsg( 'searchresulttext' ); + $rewritten = $search->replacePrefixes($term); + $titleMatches = $search->searchTitle( $rewritten ); + $textMatches = $search->searchText( $rewritten ); + + // did you mean... suggestions + if($textMatches && $textMatches->hasSuggestion()){ + $st = SpecialPage::getTitleFor( 'Search' ); + $stParams = wfArrayToCGI( array( + 'search' => $textMatches->getSuggestionQuery(), + 'fulltext' => wfMsg('search')), + $this->powerSearchOptions()); + + $suggestLink = $sk->makeKnownLinkObj( $st, + $textMatches->getSuggestionSnippet(), + $stParams ); + + $wgOut->addHTML('
'.wfMsg('search-suggest',$suggestLink).'
'); + } + + $wgOut->addHTML( $extra ); + + $wgOut->wrapWikiMsg( "
\n$1
", 'searchresulttext' ); if( '' === trim( $term ) ) { // Empty query -- straight view of search form @@ -967,9 +993,6 @@ class SpecialSearchOld { } $wgOut->addHTML( $this->shortDialog( $term ) ); - $rewritten = $search->replacePrefixes($term); - - $titleMatches = $search->searchTitle( $rewritten ); // Sometimes the search engine knows there are too many hits if ($titleMatches instanceof SearchResultTooMany) { @@ -980,22 +1003,6 @@ class SpecialSearchOld { return; } - $textMatches = $search->searchText( $rewritten ); - - // did you mean... suggestions - if($textMatches && $textMatches->hasSuggestion()){ - $st = SpecialPage::getTitleFor( 'Search' ); - $stParams = wfArrayToCGI( array( - 'search' => $textMatches->getSuggestionQuery(), - 'fulltext' => wfMsg('search')), - $this->powerSearchOptions()); - - $suggestLink = ''. - $textMatches->getSuggestionSnippet().''; - - $wgOut->addHTML('
'.wfMsg('search-suggest',$suggestLink).'
'); - } - // show number of results $num = ( $titleMatches ? $titleMatches->numRows() : 0 ) + ( $textMatches ? $textMatches->numRows() : 0); @@ -1234,8 +1241,8 @@ class SpecialSearchOld { array('search' => wfMsgForContent('searchrelated').':'.$t->getPrefixedText(), 'fulltext' => wfMsg('search') )); - $related = ' -- '. - wfMsg('search-relatedarticle').''; + $related = ' -- ' . $sk->makeKnownLinkObj( $st, + wfMsg('search-relatedarticle'), $stParams ); } // Include a thumbnail for media files... @@ -1424,10 +1431,11 @@ class SpecialSearchOld { $searchField = Xml::input( 'search', 50, $term, array( 'type' => 'text', 'id' => 'powerSearchText' ) ); $searchButton = Xml::submitButton( wfMsg( 'powersearch' ), array( 'name' => 'fulltext' ) ) . "\n"; $searchTitle = SpecialPage::getTitleFor( 'Search' ); + $searchHiddens = Xml::hidden( 'title', $searchTitle->getPrefixedText() ) . "\n"; + $searchHiddens .= Xml::hidden( 'fulltext', 'Advanced search' ) . "\n"; $out = Xml::openElement( 'form', array( 'id' => 'powersearch', 'method' => 'get', 'action' => $wgScript ) ) . - Xml::fieldset( wfMsg( 'powersearch-legend' ), - Xml::hidden( 'title', $searchTitle->getPrefixedText() ) . "\n" . + Xml::fieldset( wfMsg( 'powersearch-legend' ), "

" . wfMsgExt( 'powersearch-ns', array( 'parseinline' ) ) . "

\n" . @@ -1440,6 +1448,7 @@ class SpecialSearchOld { " " . $searchField . " " . + $searchHiddens . $searchButton ) . ""; @@ -1464,13 +1473,14 @@ class SpecialSearchOld { 'action' => $wgScript )); $searchTitle = SpecialPage::getTitleFor( 'Search' ); - $out .= Xml::hidden( 'title', $searchTitle->getPrefixedText() ); $out .= Xml::input( 'search', 50, $term, array( 'type' => 'text', 'id' => 'searchText' ) ) . ' '; foreach( SearchEngine::searchableNamespaces() as $ns => $name ) { if( in_array( $ns, $this->namespaces ) ) { $out .= Xml::hidden( "ns{$ns}", '1' ); } } + $out .= Xml::hidden( 'title', $searchTitle->getPrefixedText() ); + $out .= Xml::hidden( 'fulltext', 'Search' ); $out .= Xml::submitButton( wfMsg( 'searchbutton' ), array( 'name' => 'fulltext' ) ); $out .= Xml::closeElement( 'form' );