From: Matěj Suchánek Date: Fri, 28 Oct 2016 08:29:08 +0000 (+0000) Subject: Link to revisions and log entries from tag logs X-Git-Tag: 1.34.0-rc.0~5111^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22auteur_infos%22%2C%20%22id_auteur=%24id%22%29%20.%20%22?a=commitdiff_plain;h=209b24c427bb650ccfc7986a1a9bb62d5938b015;p=lhc%2Fweb%2Fwiklou.git Link to revisions and log entries from tag logs Bug: T142888 Change-Id: Ieccd6a831a6231c1f3e83ba311eac65f956fe2ec --- 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; } + }