use MediaWiki\Interwiki\InterwikiLookup;
use MediaWiki\Linker\LinkRenderer;
-use SearchResultSet;
+use ISearchResultSet;
use SpecialSearch;
use Title;
use Html;
use OOUI;
/**
- * Renders one or more SearchResultSets into a sidebar grouped by
+ * Renders one or more ISearchResultSets into a sidebar grouped by
* interwiki prefix. Includes a per-wiki header indicating where
* the results are from.
*/
class InterwikiSearchResultSetWidget implements SearchResultSetWidget {
- /** @var SpecialSearch */
+ /** @var SpecialSearch $specialSearch */
protected $specialSearch;
- /** @var SearchResultWidget */
+ /** @var SearchResultWidget $resultWidget */
protected $resultWidget;
- /** @var string[]|null */
+ /** @var string[]|null $customCaptions */
protected $customCaptions;
- /** @var LinkRenderer */
+ /** @var LinkRenderer $linkRenderer */
protected $linkRenderer;
- /** @var InterwikiLookup */
+ /** @var InterwikiLookup $iwLookup */
protected $iwLookup;
- /** @var $output */
+ /** @var \OutputPage $output */
protected $output;
/** @var bool $showMultimedia */
protected $showMultimedia;
$this->output = $specialSearch->getOutput();
$this->showMultimedia = $showMultimedia;
}
+
/**
* @param string $term User provided search term
- * @param SearchResultSet|SearchResultSet[] $resultSets List of interwiki
+ * @param ISearchResultSet|ISearchResultSet[] $resultSets List of interwiki
* results to render.
* @return string HTML
*/
$iwResults = [];
foreach ( $resultSets as $resultSet ) {
- $result = $resultSet->next();
- while ( $result ) {
+ foreach ( $resultSet as $result ) {
if ( !$result->isBrokenTitle() ) {
$iwResults[$result->getTitle()->getInterwiki()][] = $result;
}
- $result = $resultSet->next();
}
}
$iwResultItemOutput = '';
foreach ( $results as $result ) {
- $iwResultItemOutput .= $this->resultWidget->render( $result, $term, $position++ );
+ $iwResultItemOutput .= $this->resultWidget->render( $result, $position++ );
}
$footerHtml = $this->footerHtml( $term, $iwPrefix );
$interwiki = $this->iwLookup->fetch( $iwPrefix );
$parsed = wfParseUrl( wfExpandUrl( $interwiki ? $interwiki->getURL() : '/' ) );
- if ( isset( $this->customCaptions[$iwPrefix] ) ) {
- $caption = $this->customCaptions[$iwPrefix];
- } else {
- $caption = $this->specialSearch->msg( 'search-interwiki-default', $parsed['host'] )->escaped();
- }
+ $caption = $this->customCaptions[$iwPrefix] ??
+ $this->specialSearch->msg( 'search-interwiki-default', $parsed['host'] )->escaped();
$searchLink = Html::rawElement( 'em', null,
Html::rawElement( 'a', [ 'href' => $href, 'target' => '_blank' ], $caption )