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' );