* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
* @since 1.19
*/
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
/**
* Implements the default log formatting.
/** @var string */
protected $irctext = false;
+ /**
+ * @var LinkRenderer|null
+ */
+ private $linkRenderer;
+
protected function __construct( LogEntry $entry ) {
$this->entry = $entry;
$this->context = RequestContext::getMain();
$this->context = $context;
}
+ /**
+ * @since 1.30
+ * @param LinkRenderer $linkRenderer
+ */
+ public function setLinkRenderer( LinkRenderer $linkRenderer ) {
+ $this->linkRenderer = $linkRenderer;
+ }
+
+ /**
+ * @since 1.30
+ * @return LinkRenderer
+ */
+ public function getLinkRenderer() {
+ if ( $this->linkRenderer !== null ) {
+ return $this->linkRenderer;
+ } else {
+ return MediaWikiServices::getInstance()->getLinkRenderer();
+ }
+ }
+
/**
* Set the visibility restrictions for displaying content.
* If set to public, and an item is deleted, then it will be replaced
/**
* Even uglier hack to maintain backwards compatibilty with IRC bots
- * (bug 34508).
+ * (T36508).
* @see getActionText()
* @return string Text
*/
/**
* Even uglier hack to maintain backwards compatibilty with IRC bots
- * (bug 34508).
+ * (T36508).
* @see getActionText()
* @return string Text
*/
$text = wfMessage( 'undeletedarticle' )
->rawParams( $target )->inContentLanguage()->escaped();
break;
- // @codingStandardsIgnoreStart Long line
//case 'revision': // Revision deletion
//case 'event': // Log deletion
// see https://github.com/wikimedia/mediawiki/commit/a9c243b7b5289dad204278dbe7ed571fd914e395
//default:
- // @codingStandardsIgnoreEnd
}
break;
case 'patrol':
- // @codingStandardsIgnoreStart Long line
// https://github.com/wikimedia/mediawiki/commit/1a05f8faf78675dc85984f27f355b8825b43efff
- // @codingStandardsIgnoreEnd
// Create a diff link to the patrolled revision
if ( $entry->getSubtype() === 'patrol' ) {
$diffLink = htmlspecialchars(
$rawDuration = $parameters['5::duration'];
$rawFlags = $parameters['6::flags'];
}
- $duration = $wgContLang->translateBlockExpiry( $rawDuration );
+ $duration = $wgContLang->translateBlockExpiry(
+ $rawDuration,
+ null,
+ wfTimestamp( TS_UNIX, $entry->getTimestamp() )
+ );
$flags = BlockLogFormatter::formatBlockFlags( $rawFlags, $wgContLang );
$text = wfMessage( 'blocklogentry' )
->rawParams( $target, $duration, $flags )->inContentLanguage()->escaped();
->rawParams( $target )->inContentLanguage()->escaped();
break;
case 'reblock':
- $duration = $wgContLang->translateBlockExpiry( $parameters['5::duration'] );
+ $duration = $wgContLang->translateBlockExpiry(
+ $parameters['5::duration'],
+ null,
+ wfTimestamp( TS_UNIX, $entry->getTimestamp() )
+ );
$flags = BlockLogFormatter::formatBlockFlags( $parameters['6::flags'], $wgContLang );
$text = wfMessage( 'reblock-logentry' )
->rawParams( $target, $duration, $flags )->inContentLanguage()->escaped();
*/
protected function extractParameters() {
$entry = $this->entry;
- $params = array();
+ $params = [];
if ( $entry->isLegacy() ) {
foreach ( $entry->getParameters() as $index => $value ) {
* @throws MWException
* @return string
*/
- protected function makePageLink( Title $title = null, $parameters = array(), $html = null ) {
+ protected function makePageLink( Title $title = null, $parameters = [], $html = null ) {
+ if ( !$title instanceof Title ) {
+ throw new MWException( 'Expected title, got null' );
+ }
if ( !$this->plaintext ) {
- $link = Linker::link( $title, $html, array(), $parameters );
+ $html = $html !== null ? new HtmlArmor( $html ) : $html;
+ $link = $this->getLinkRenderer()->makeLink( $title, $html, [], $parameters );
} else {
- if ( !$title instanceof Title ) {
- throw new MWException( "Expected title, got null" );
- }
$link = '[[' . $title->getPrefixedText() . ']]';
}
}
$content = $this->msg( $message )->escaped();
- $attribs = array( 'class' => 'history-deleted' );
+ $attribs = [ 'class' => 'history-deleted' ];
return Html::rawElement( 'span', $attribs, $content );
}
if ( $this->plaintext ) {
return $content;
}
- $attribs = array( 'class' => 'history-deleted' );
+ $attribs = [ 'class' => 'history-deleted' ];
return Html::rawElement( 'span', $attribs, $content );
}
* @return array Array of titles that should be preloaded with LinkBatch
*/
public function getPreloadTitles() {
- return array();
+ return [];
}
/**
* @return array
*/
public function formatParametersForApi() {
- $logParams = array();
+ $logParams = [];
foreach ( $this->getParametersForApi() as $key => $value ) {
$vals = explode( ':', $key, 3 );
if ( count( $vals ) !== 3 ) {
if ( $type === 'msg-content' ) {
$msg->inContentLanguage();
}
- $value = array();
+ $value = [];
$value["{$name}_key"] = $msg->getKey();
if ( $msg->getParams() ) {
$value["{$name}_params"] = $msg->getParams();
case 'title':
case 'title-link':
$title = Title::newFromText( $value );
- if ( $title ) {
- $value = array();
- ApiQueryBase::addTitleInfo( $value, $title, "{$name}_" );
+ if ( !$title ) {
+ // Huh? Do something halfway sane.
+ $title = SpecialPage::getTitleFor( 'Badtitle', $value );
}
+ $value = [];
+ ApiQueryBase::addTitleInfo( $value, $title, "{$name}_" );
return $value;
case 'user':
break;
}
- return array( $name => $value );
+ return [ $name => $value ];
}
}
$params = $this->entry->getParameters();
- Hooks::run( 'LogLine', array( $type, $subtype, $title, $params,
- &$this->comment, &$this->revert, $this->entry->getTimestamp() ) );
+ Hooks::run( 'LogLine', [ $type, $subtype, $title, $params,
+ &$this->comment, &$this->revert, $this->entry->getTimestamp() ] );
return $this->revert;
}