diff options
Diffstat (limited to 'www/wiki/includes/widget/search/SimpleSearchResultWidget.php')
-rw-r--r-- | www/wiki/includes/widget/search/SimpleSearchResultWidget.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/www/wiki/includes/widget/search/SimpleSearchResultWidget.php b/www/wiki/includes/widget/search/SimpleSearchResultWidget.php new file mode 100644 index 00000000..552cbaf8 --- /dev/null +++ b/www/wiki/includes/widget/search/SimpleSearchResultWidget.php @@ -0,0 +1,63 @@ +<?php + +namespace MediaWiki\Widget\Search; + +use HtmlArmor; +use MediaWiki\Linker\LinkRenderer; +use SearchResult; +use SpecialSearch; + +/** + * Renders a simple one-line result + * + * @deprecated since 1.31. Use other result widgets. + */ +class SimpleSearchResultWidget implements SearchResultWidget { + /** @var SpecialSearch */ + protected $specialSearch; + /** @var LinkRenderer */ + protected $linkRenderer; + + public function __construct( SpecialSearch $specialSearch, LinkRenderer $linkRenderer ) { + wfDeprecated( __METHOD__, '1.31' ); + $this->specialSearch = $specialSearch; + $this->linkRenderer = $linkRenderer; + } + + /** + * @param SearchResult $result The result to render + * @param string $terms Terms to be highlighted (@see SearchResult::getTextSnippet) + * @param int $position The result position, including offset + * @return string HTML + */ + public function render( SearchResult $result, $terms, $position ) { + $title = $result->getTitle(); + $titleSnippet = $result->getTitleSnippet(); + if ( $titleSnippet ) { + $titleSnippet = new HtmlArmor( $titleSnippet ); + } else { + $titleSnippet = null; + } + + $link = $this->linkRenderer->makeLink( $title, $titleSnippet ); + + $redirectTitle = $result->getRedirectTitle(); + $redirect = ''; + if ( $redirectTitle !== null ) { + $redirectText = $result->getRedirectSnippet(); + if ( $redirectText ) { + $redirectText = new HtmlArmor( $redirectText ); + } else { + $redirectText = null; + } + $redirect = + "<span class='searchalttitle'>" . + $this->specialSearch->msg( 'search-redirect' )->rawParams( + $this->linkRenderer->makeLink( $redirectTitle, $redirectText ) + )->parse() . + "</span>"; + } + + return "<li>{$link} {$redirect}</li>"; + } +} |