wiki.techinc.nl/includes/widget/search/SimpleSearchResultWidget.php
Erik Bernhardson d95f644e80 Deprecate old interwiki search result widget
Update the flag for new interwiki sidebar from unset means disabled
to unset means enabled. Deprecate the old rendering widgets to be
removed at a later date per deprecation policy.

Change-Id: I80d8375bbd3e1fabc9b2432b6875d17a96aee099
Related: I9a488438
2018-01-10 12:46:42 -08:00

63 lines
1.7 KiB
PHP

<?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>";
}
}