* @file
*/
+use MediaWiki\Linker\LinkRenderer;
use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\IDatabase;
protected $allowedActions = null;
/**
- * Constructor.
+ * @var LinkRenderer|null
+ */
+ private $linkRenderer;
+
+ /**
* The first two parameters used to be $skin and $out, but now only a context
* is needed, that's why there's a second unused parameter.
*
* @param IContextSource|Skin $context Context to use; formerly it was
* a Skin object. Use of Skin is deprecated.
- * @param null $unused Unused; used to be an OutputPage object.
+ * @param LinkRenderer|null $linkRenderer previously unused
* @param int $flags Can be a combination of self::NO_ACTION_LINK,
* self::NO_EXTRA_USER_LINKS or self::USE_CHECKBOXES.
*/
- public function __construct( $context, $unused = null, $flags = 0 ) {
+ public function __construct( $context, $linkRenderer = null, $flags = 0 ) {
if ( $context instanceof IContextSource ) {
$this->setContext( $context );
} else {
$this->flags = $flags;
$this->showTagEditUI = ChangeTags::showTagEditingUI( $this->getUser() );
+ if ( $linkRenderer instanceof LinkRenderer ) {
+ $this->linkRenderer = $linkRenderer;
+ }
+ }
+
+ /**
+ * @since 1.30
+ * @return LinkRenderer
+ */
+ protected function getLinkRenderer() {
+ if ( $this->linkRenderer !== null ) {
+ return $this->linkRenderer;
+ } else {
+ return MediaWikiServices::getInstance()->getLinkRenderer();
+ }
}
/**
// Option value -> message mapping
$links = [];
$hiddens = ''; // keep track for "go" button
- $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
+ $linkRenderer = $this->getLinkRenderer();
foreach ( $filter as $type => $val ) {
// Should the below assignment be outside the foreach?
// Then it would have to be copied. Not certain what is more expensive.
$entry = DatabaseLogEntry::newFromRow( $row );
$formatter = LogFormatter::newFromEntry( $entry );
$formatter->setContext( $this->getContext() );
+ $formatter->setLinkRenderer( $this->getLinkRenderer() );
$formatter->setShowUserToolLinks( !( $this->flags & self::NO_EXTRA_USER_LINKS ) );
$time = htmlspecialchars( $this->getLanguage()->userTimeAndDate(
/**
* Show log extract. Either with text and a box (set $msgKey) or without (don't set $msgKey)
*
- * @param OutputPage|string $out By-reference
+ * @param OutputPage|string &$out
* @param string|array $types Log types to show
* @param string|Title $page The page title to show log entries for
* @param string $user The user who made the log entries
$context = RequestContext::getMain();
}
+ // FIXME: Figure out how to inject this
+ $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
+
# Insert list of top 50 (or top $lim) items
- $loglist = new LogEventsList( $context, null, $flags );
+ $loglist = new LogEventsList( $context, $linkRenderer, $flags );
$pager = new LogPager( $loglist, $types, $user, $page, '', $conds );
if ( !$useRequestParams ) {
# Reset vars that may have been taken from the request
$urlParam = array_merge( $urlParam, $extraUrlParams );
}
- $s .= MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink(
+ $s .= $linkRenderer->makeKnownLink(
SpecialPage::getTitleFor( 'Log' ),
$context->msg( 'log-fulllog' )->text(),
[],