1<?php 2 3namespace MediaWiki\Search\SearchWidgets; 4 5use HtmlArmor; 6use MediaWiki\Linker\LinkRenderer; 7use SearchResult; 8use SpecialSearch; 9 10/** 11 * Renders a simple one-line result 12 * 13 * @deprecated since 1.31. Use other result widgets. 14 */ 15class SimpleSearchResultWidget implements SearchResultWidget { 16 /** @var SpecialSearch */ 17 protected $specialSearch; 18 /** @var LinkRenderer */ 19 protected $linkRenderer; 20 21 public function __construct( SpecialSearch $specialSearch, LinkRenderer $linkRenderer ) { 22 wfDeprecated( __METHOD__, '1.31' ); 23 $this->specialSearch = $specialSearch; 24 $this->linkRenderer = $linkRenderer; 25 } 26 27 /** 28 * @param SearchResult $result The result to render 29 * @param int $position The result position, including offset 30 * @return string HTML 31 */ 32 public function render( SearchResult $result, $position ) { 33 $title = $result->getTitle(); 34 $titleSnippet = $result->getTitleSnippet(); 35 if ( $titleSnippet ) { 36 $titleSnippet = new HtmlArmor( $titleSnippet ); 37 } else { 38 $titleSnippet = null; 39 } 40 41 $link = $this->linkRenderer->makeLink( $title, $titleSnippet ); 42 43 $redirectTitle = $result->getRedirectTitle(); 44 $redirect = ''; 45 if ( $redirectTitle !== null ) { 46 $redirectText = $result->getRedirectSnippet(); 47 if ( $redirectText ) { 48 $redirectText = new HtmlArmor( $redirectText ); 49 } else { 50 $redirectText = null; 51 } 52 $redirect = 53 "<span class='searchalttitle'>" . 54 $this->specialSearch->msg( 'search-redirect' )->rawParams( 55 $this->linkRenderer->makeLink( $redirectTitle, $redirectText ) 56 )->parse() . 57 "</span>"; 58 } 59 60 return "<li>{$link} {$redirect}</li>"; 61 } 62} 63