コード例 #1
0
 /**
  * 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>");
 }
コード例 #2
0
	/**
	 * 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' ) . '&#160;';
		$params = array( 'id' => 'mw-searchoptions' );

		$form = Xml::fieldset( false, false, $params ) .
			$hidden . $label . $selector .
			Html::closeElement( 'fieldset' );
		return false;
	}
コード例 #3
0
 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;
 }