From 6b69b24099f4d1b52cd4d2d0937100f3e200a386 Mon Sep 17 00:00:00 2001 From: Rob Moen Date: Wed, 17 Dec 2014 14:09:02 -0800 Subject: [PATCH] hygiene: small special:search refactor * removed some unneeded members ** Grepped for usage through repo and extensions * added isPowerSearch method * pull search options out of search profile tabs and into its own method * consistent creation of did you mean html Change-Id: I0da81609e3bc685c971b85a08e228cdda4455c18 --- includes/specials/SpecialSearch.php | 43 +++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index a7dea88c9d..4ecdbd9275 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; } @@ -213,6 +212,7 @@ class SpecialSearch extends SpecialPage { $search->setNamespaces( $this->namespaces ); $search->prefix = $this->mPrefix; $term = $search->transformSearchTerm( $term ); + $didYouMeanHtml = ''; Hooks::run( 'SpecialSearchSetupEngine', array( $this, $this->profile, $search ) ); @@ -289,8 +289,11 @@ 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 ( !Hooks::run( 'SpecialSearchResultsPrepend', array( $this, $out, $term ) ) ) { @@ -303,7 +306,7 @@ class SpecialSearch extends SpecialPage { Xml::openElement( 'form', array( - 'id' => ( $this->profile === 'advanced' ? 'powersearch' : 'search' ), + 'id' => ( $this->isPowerSearch() ? 'powersearch' : 'search' ), 'method' => 'get', 'action' => wfScript(), ) @@ -331,8 +334,9 @@ class SpecialSearch extends SpecialPage { $this->shortDialog( $term, $num, $totalRes ) . Xml::closeElement( 'div' ) . $this->searchProfileTabs( $term ) . + $this->searchOptions( $term ) . Xml::closeElement( 'form' ) . - $this->didYouMeanHtml + $didYouMeanHtml ); $filePrefix = $wgContLang->getFormattedNsText( NS_FILE ) . ':'; @@ -459,8 +463,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' ) ); @@ -473,6 +475,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. @@ -498,7 +509,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 ) { @@ -1036,11 +1047,19 @@ class SpecialSearch extends SpecialPage { $out .= Xml::element( 'div', array( 'style' => 'clear:both' ), '', false ); $out .= Xml::closeElement( 'div' ); - // Hidden stuff + return $out; + } + + /** + * @param string $term Search term + * @return string + */ + protected function searchOptions( $term ) { + $out = ''; $opts = array(); $opts['profile'] = $this->profile; - if ( $this->profile === 'advanced' ) { + if ( $this->isPowerSearch() ) { $out .= $this->powerSearchBox( $term, $opts ); } else { $form = ''; @@ -1062,7 +1081,7 @@ class SpecialSearch extends SpecialPage { $out .= Html::hidden( 'profile', $this->profile ) . "\n"; // Term box $out .= Html::input( 'search', $term, 'search', array( - 'id' => $this->profile === 'advanced' ? 'powerSearchText' : 'searchText', + 'id' => $this->isPowerSearch() ? 'powerSearchText' : 'searchText', 'size' => '50', 'autofocus', 'class' => 'mw-ui-input mw-ui-input-inline', -- 2.20.1