From 209b24c427bb650ccfc7986a1a9bb62d5938b015 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mat=C4=9Bj=20Such=C3=A1nek?= Date: Fri, 28 Oct 2016 08:29:08 +0000 Subject: [PATCH] Link to revisions and log entries from tag logs Bug: T142888 Change-Id: Ieccd6a831a6231c1f3e83ba311eac65f956fe2ec --- includes/logging/TagLogFormatter.php | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/includes/logging/TagLogFormatter.php b/includes/logging/TagLogFormatter.php index 230d13b60b..8458e0b40a 100644 --- a/includes/logging/TagLogFormatter.php +++ b/includes/logging/TagLogFormatter.php @@ -30,6 +30,45 @@ * @since 1.25 */ class TagLogFormatter extends LogFormatter { + + protected function getMessageParameters() { + $params = parent::getMessageParameters(); + + $isRevLink = !empty( $params[3] ); + if ( $isRevLink ) { + $id = $params[3]; + $target = $this->entry->getTarget(); + $query = [ + 'oldid' => $id, + 'diff' => 'prev' + ]; + } else { + $id = $params[4]; + $target = SpecialPage::getTitleValueFor( 'Log' ); + $query = [ + 'logid' => $id, + ]; + } + + $formattedNumber = $this->context->getLanguage()->formatNum( $id, true ); + if ( $this->plaintext ) { + $link = $formattedNumber; + } elseif ( !$isRevLink || $target->exists() ) { + $link = $this->getLinkRenderer()->makeKnownLink( + $target, $formattedNumber, [], $query ); + } else { + $link = htmlspecialchars( $formattedNumber ); + } + + if ( $isRevLink ) { + $params[3] = Message::rawParam( $link ); + } else { + $params[4] = Message::rawParam( $link ); + } + + return $params; + } + protected function getMessageKey() { $key = parent::getMessageKey(); $params = $this->getMessageParameters(); @@ -50,4 +89,5 @@ class TagLogFormatter extends LogFormatter { return $key; } + } -- 2.20.1