From f6d65e533c62f6deb21342d4901ece24497b433e Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 4 Jun 2015 07:31:04 +0200 Subject: Update to MediaWiki 1.25.1 --- includes/specials/SpecialSearch.php | 131 +++++++++++++++++++++--------------- 1 file changed, 77 insertions(+), 54 deletions(-) (limited to 'includes/specials/SpecialSearch.php') diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index 88ab7d82..608d62e6 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -63,7 +63,7 @@ class SpecialSearch extends SpecialPage { /** * @var string */ - protected $didYouMeanHtml, $fulltext; + protected $fulltext; const NAMESPACES_CURRENT = 'sense'; @@ -165,7 +165,6 @@ class SpecialSearch extends SpecialPage { } } - $this->didYouMeanHtml = ''; # html of did you mean... link $this->fulltext = $request->getVal( 'fulltext' ); $this->profile = $profile; } @@ -196,7 +195,7 @@ class SpecialSearch extends SpecialPage { # No match, generate an edit URL $title = Title::newFromText( $term ); if ( !is_null( $title ) ) { - wfRunHooks( 'SpecialSearchNogomatch', array( &$title ) ); + Hooks::run( 'SpecialSearchNogomatch', array( &$title ) ); } $this->showResults( $term ); } @@ -207,14 +206,14 @@ class SpecialSearch extends SpecialPage { public function showResults( $term ) { global $wgContLang; - $profile = new ProfileSection( __METHOD__ ); $search = $this->getSearchEngine(); $search->setLimitOffset( $this->limit, $this->offset ); $search->setNamespaces( $this->namespaces ); $search->prefix = $this->mPrefix; $term = $search->transformSearchTerm( $term ); + $didYouMeanHtml = ''; - wfRunHooks( 'SpecialSearchSetupEngine', array( $this, $this->profile, $search ) ); + Hooks::run( 'SpecialSearchSetupEngine', array( $this, $this->profile, $search ) ); $this->setupPage( $term ); @@ -289,11 +288,14 @@ class SpecialSearch extends SpecialPage { $stParams ); - $this->didYouMeanHtml = '
' - . $this->msg( 'search-suggest' )->rawParams( $suggestLink )->text() . '
'; + # html of did you mean... search suggestion link + $didYouMeanHtml = + Xml::openElement( 'div', array( 'class' => 'searchdidyoumean' ) ) . + $this->msg( 'search-suggest' )->rawParams( $suggestLink )->text() . + Xml::closeElement( 'div' ); } - if ( !wfRunHooks( 'SpecialSearchResultsPrepend', array( $this, $out, $term ) ) ) { + if ( !Hooks::run( 'SpecialSearchResultsPrepend', array( $this, $out, $term ) ) ) { # Hook requested termination return; } @@ -303,7 +305,7 @@ class SpecialSearch extends SpecialPage { Xml::openElement( 'form', array( - 'id' => ( $this->profile === 'advanced' ? 'powersearch' : 'search' ), + 'id' => ( $this->isPowerSearch() ? 'powersearch' : 'search' ), 'method' => 'get', 'action' => wfScript(), ) @@ -330,8 +332,10 @@ class SpecialSearch extends SpecialPage { Xml::openElement( 'div', array( 'id' => 'mw-search-top-table' ) ) . $this->shortDialog( $term, $num, $totalRes ) . Xml::closeElement( 'div' ) . - $this->formHeader( $term ) . - Xml::closeElement( 'form' ) + $this->searchProfileTabs( $term ) . + $this->searchOptions( $term ) . + Xml::closeElement( 'form' ) . + $didYouMeanHtml ); $filePrefix = $wgContLang->getFormattedNsText( NS_FILE ) . ':'; @@ -360,7 +364,7 @@ class SpecialSearch extends SpecialPage { ); } } - wfRunHooks( 'SpecialSearchResults', array( $term, &$titleMatches, &$textMatches ) ); + Hooks::run( 'SpecialSearchResults', array( $term, &$titleMatches, &$textMatches ) ); $out->parserOptions()->setEditSection( false ); if ( $titleMatches ) { @@ -426,21 +430,24 @@ class SpecialSearch extends SpecialPage { return; } + $messageName = 'searchmenu-new-nocreate'; $linkClass = 'mw-search-createlink'; - if ( $title->isKnown() ) { - $messageName = 'searchmenu-exists'; - $linkClass = 'mw-search-exists'; - } elseif ( $title->quickUserCan( 'create', $this->getUser() ) ) { - $messageName = 'searchmenu-new'; - } else { - $messageName = 'searchmenu-new-nocreate'; + + if ( !$title->isExternal() ) { + if ( $title->isKnown() ) { + $messageName = 'searchmenu-exists'; + $linkClass = 'mw-search-exists'; + } elseif ( $title->quickUserCan( 'create', $this->getUser() ) ) { + $messageName = 'searchmenu-new'; + } } + $params = array( $messageName, wfEscapeWikiText( $title->getPrefixedText() ), Message::numParam( $num ) ); - wfRunHooks( 'SpecialSearchCreateLink', array( $title, &$params ) ); + Hooks::run( 'SpecialSearchCreateLink', array( $title, &$params ) ); // Extensions using the hook might still return an empty $messageName if ( $messageName ) { @@ -455,8 +462,6 @@ class SpecialSearch extends SpecialPage { * @param string $term */ protected function setupPage( $term ) { - # Should advanced UI be used? - $this->searchAdvanced = ( $this->profile === 'advanced' ); $out = $this->getOutput(); if ( strval( $term ) !== '' ) { $out->setPageTitle( $this->msg( 'searchresults' ) ); @@ -469,6 +474,15 @@ class SpecialSearch extends SpecialPage { $out->addModules( 'mediawiki.special.search' ); } + /** + * Return true if current search is a power (advanced) search + * + * @return bool + */ + protected function isPowerSearch() { + return $this->profile === 'advanced'; + } + /** * Extract "power search" namespace settings from the request object, * returning a list of index numbers to search. @@ -494,7 +508,7 @@ class SpecialSearch extends SpecialPage { */ protected function powerSearchOptions() { $opt = array(); - if ( $this->profile !== 'advanced' ) { + if ( !$this->isPowerSearch() ) { $opt['profile'] = $this->profile; } else { foreach ( $this->namespaces as $n ) { @@ -519,7 +533,7 @@ class SpecialSearch extends SpecialPage { $request->getVal( 'nsRemember' ), 'searchnamespace', $request - ) + ) && !wfReadOnly() ) { // Reset namespace preferences: namespaces are not searched // when they're not mentioned in the URL parameters. @@ -549,7 +563,6 @@ class SpecialSearch extends SpecialPage { protected function showMatches( &$matches ) { global $wgContLang; - $profile = new ProfileSection( __METHOD__ ); $terms = $wgContLang->convertForSearchResult( $matches->termMatches() ); $out = "