X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fpager%2FIndexPager.php;h=472bcdd8a2b4c80b84f430e7309050de7f599647;hb=2ec627ea02ad07db4842d3d53a1cce2b3c1384ee;hp=64dbb228a4db7f63185608ce44e1d69df72e8ca0;hpb=349a04cd10aa3d44b3f8ee9dd31331db6f2928b2;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/pager/IndexPager.php b/includes/pager/IndexPager.php index 64dbb228a4..472bcdd8a2 100644 --- a/includes/pager/IndexPager.php +++ b/includes/pager/IndexPager.php @@ -21,8 +21,12 @@ * @ingroup Pager */ -use Wikimedia\Rdbms\IResultWrapper; +use MediaWiki\Linker\LinkRenderer; +use MediaWiki\Linker\LinkTarget; +use MediaWiki\MediaWikiServices; +use MediaWiki\Navigation\PrevNextNavigationRenderer; use Wikimedia\Rdbms\IDatabase; +use Wikimedia\Rdbms\IResultWrapper; /** * IndexPager is an efficient pager which uses a (roughly unique) index in the @@ -155,7 +159,10 @@ abstract class IndexPager extends ContextSource implements Pager { */ public $mResult; - public function __construct( IContextSource $context = null ) { + /** @var LinkRenderer */ + private $linkRenderer; + + public function __construct( IContextSource $context = null, LinkRenderer $linkRenderer = null ) { if ( $context ) { $this->setContext( $context ); } @@ -207,6 +214,7 @@ abstract class IndexPager extends ContextSource implements Pager { ? $dir[$this->mOrderType] : $dir; } + $this->linkRenderer = $linkRenderer; } /** @@ -524,9 +532,9 @@ abstract class IndexPager extends ContextSource implements Pager { $attrs['class'] = "mw-{$type}link"; } - return Linker::linkKnown( + return $this->getLinkRenderer()->makeKnownLink( $this->getTitle(), - $text, + new HtmlArmor( $text ), $attrs, $query + $this->getDefaultQuery() ); @@ -784,4 +792,29 @@ abstract class IndexPager extends ContextSource implements Pager { protected function getDefaultDirections() { return self::DIR_ASCENDING; } + + /** + * Generate (prev x| next x) (20|50|100...) type links for paging + * + * @param LinkTarget $title + * @param int $offset + * @param int $limit + * @param array $query Optional URL query parameter string + * @param bool $atend Optional param for specified if this is the last page + * @return string + */ + protected function buildPrevNextNavigation( LinkTarget $title, $offset, $limit, + array $query = [], $atend = false + ) { + $prevNext = new PrevNextNavigationRenderer( $this ); + + return $prevNext->buildPrevNextNavigation( $title, $offset, $limit, $query, $atend ); + } + + protected function getLinkRenderer() { + if ( $this->linkRenderer === null ) { + $this->linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer(); + } + return $this->linkRenderer; + } }