*/
class SpecialCategories extends SpecialPage {
- /**
- * @var PageLinkRenderer
- */
- protected $linkRenderer = null;
-
public function __construct() {
parent::__construct( 'Categories' );
// using the initServices() method.
}
- /**
- * Initialize or override the PageLinkRenderer SpecialCategories collaborates with.
- * Useful mainly for testing.
- *
- * @todo the pager should also be injected, and de-coupled from the rendering logic.
- *
- * @param PageLinkRenderer $linkRenderer
- */
- public function setPageLinkRenderer(
- PageLinkRenderer $linkRenderer
- ) {
- $this->linkRenderer = $linkRenderer;
- }
-
- /**
- * Initialize any services we'll need (unless it has already been provided via a setter).
- * This allows for dependency injection even though we don't control object creation.
- */
- private function initServices() {
- if ( !$this->linkRenderer ) {
- $lang = $this->getContext()->getLanguage();
- $titleFormatter = new MediaWikiTitleCodec( $lang, GenderCache::singleton() );
- $this->linkRenderer = new MediaWikiPageLinkRenderer( $titleFormatter );
- }
- }
-
public function execute( $par ) {
- $this->initServices();
-
$this->setHeaders();
$this->outputHeader();
$this->getOutput()->allowClickjacking();
$from = $this->getRequest()->getText( 'from', $par );
- $cap = new CategoryPager( $this->getContext(), $from, $this->linkRenderer );
+ $cap = new CategoryPager(
+ $this->getContext(),
+ $from,
+ $this->getLinkRenderer()
+ );
$cap->doQuery();
$this->getOutput()->addHTML(
* @file
* @ingroup Pager
*/
+use MediaWiki\Linker\LinkRenderer;
/**
* @ingroup Pager
class CategoryPager extends AlphabeticPager {
/**
- * @var PageLinkRenderer
+ * @var LinkRenderer
*/
protected $linkRenderer;
/**
* @param IContextSource $context
* @param string $from
- * @param PageLinkRenderer $linkRenderer
+ * @param LinkRenderer $linkRenderer
*/
- public function __construct( IContextSource $context, $from, PageLinkRenderer $linkRenderer
+ public function __construct( IContextSource $context, $from, LinkRenderer $linkRenderer
) {
parent::__construct( $context );
$from = str_replace( ' ', '_', $from );
$this->mResult->rewind();
foreach ( $this->mResult as $row ) {
- $batch->addObj( Title::makeTitleSafe( NS_CATEGORY, $row->cat_title ) );
+ $batch->addObj( new TitleValue( NS_CATEGORY, $row->cat_title ) );
}
$batch->execute();
$this->mResult->rewind();
function formatRow( $result ) {
$title = new TitleValue( NS_CATEGORY, $result->cat_title );
$text = $title->getText();
- $link = $this->linkRenderer->renderHtmlLink( $title, $text );
+ $link = $this->linkRenderer->makeLink( $title, $text );
$count = $this->msg( 'nmembers' )->numParams( $result->cat_pages )->escaped();
return Html::rawElement( 'li', null, $this->getLanguage()->specialList( $link, $count ) ) . "\n";