/** * Verify we do not expand search term in <title> on search result page * https://gerrit.wikimedia.org/r/4841 */ function testSearchTermIsNotExpanded() { # Initialize [[Special::Search]] $search = new SpecialSearch(); $search->getContext()->setTitle(Title::newFromText('Special:Search')); $search->load(); # Simulate a user searching for a given term $term = '{{SITENAME}}'; $search->showResults($term); # Lookup the HTML page title set for that page $pageTitle = $search->getContext()->getOutput()->getHTMLTitle(); # Compare :-] $this->assertRegExp('/' . preg_quote($term) . '/', $pageTitle, "Search term '{$term}' should not be expanded in Special:Search <title>"); }
/** * Hook: SpecialSearchProfileForm */ public static function searchProfileForm( SpecialSearch $search, &$form, /*string*/ $profile, $term, array $opts ) { if ( $profile !== 'translation' ) { return true; } if ( !$search->getSearchEngine()->supports( 'title-suffix-filter' ) ) { return false; } $hidden = ''; foreach ( $opts as $key => $value ) { $hidden .= Html::hidden( $key, $value ); } $context = $search->getContext(); $code = $context->getLanguage()->getCode(); $selected = $context->getRequest()->getVal( 'languagefilter' ); if ( is_callable( array( 'LanguageNames', 'getNames' ) ) ) { $languages = LanguageNames::getNames( $code, LanguageNames::FALLBACK_NORMAL, LanguageNames::LIST_MW ); } else { $languages = Language::getLanguageNames( false ); } ksort( $languages ); $selector = new XmlSelect( 'languagefilter', 'languagefilter' ); $selector->setDefault( $selected ); $selector->addOption( wfMessage( 'translate-search-nofilter' )->text(), '-' ); foreach ( $languages as $code => $name ) { $selector->addOption( "$code - $name", $code ); } $selector = $selector->getHTML(); $label = Xml::label( wfMessage( 'translate-search-languagefilter' )->text(), 'languagefilter' ) . ' '; $params = array( 'id' => 'mw-searchoptions' ); $form = Xml::fieldset( false, false, $params ) . $hidden . $label . $selector . Html::closeElement( 'fieldset' ); return false; }
public static function searchProfileSetupEngine(SpecialSearch $search, $profile, SearchEngine $engine) { if ($profile !== 'translation') { return true; } $context = $search->getContext(); $selected = $context->getRequest()->getVal('languagefilter'); if ($selected !== '-' && $selected) { $engine->setFeatureData('title-suffix-filter', "/{$selected}"); $search->setExtraParam('languagefilter', $selected); } return true; }