X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Flogging%2FLogFormatter.php;h=3e942ae08d12facc2a9a59f88505e8923ca71329;hp=b9bb70c321e963c65bbb10775053a77b7cff3a8b;hb=f032d27d0cfc16d93d9164498c3967c77c60cfc8;hpb=f950cc221ed58a83c08fb816aa8faee8fbcbe09d diff --git a/includes/logging/LogFormatter.php b/includes/logging/LogFormatter.php index b9bb70c321..3e942ae08d 100644 --- a/includes/logging/LogFormatter.php +++ b/includes/logging/LogFormatter.php @@ -1,6 +1,6 @@ $value ]; } } - -/** - * This class formats all log entries for log types - * which have not been converted to the new system. - * This is not about old log entries which store - * parameters in a different format - the new - * LogFormatter classes have code to support formatting - * those too. - * @since 1.19 - */ -class LegacyLogFormatter extends LogFormatter { - /** - * Backward compatibility for extension changing the comment from - * the LogLine hook. This will be set by the first call on getComment(), - * then it might be modified by the hook when calling getActionLinks(), - * so that the modified value will be returned when calling getComment() - * a second time. - * - * @var string|null - */ - private $comment = null; - - /** - * Cache for the result of getActionLinks() so that it does not need to - * run multiple times depending on the order that getComment() and - * getActionLinks() are called. - * - * @var string|null - */ - private $revert = null; - - public function getComment() { - if ( $this->comment === null ) { - $this->comment = parent::getComment(); - } - - // Make sure we execute the LogLine hook so that we immediately return - // the correct value. - if ( $this->revert === null ) { - $this->getActionLinks(); - } - - return $this->comment; - } - - /** - * @return string - * @return-taint onlysafefor_html - */ - protected function getActionMessage() { - $entry = $this->entry; - $action = LogPage::actionText( - $entry->getType(), - $entry->getSubtype(), - $entry->getTarget(), - $this->plaintext ? null : $this->context->getSkin(), - (array)$entry->getParameters(), - !$this->plaintext // whether to filter [[]] links - ); - - $performer = $this->getPerformerElement(); - if ( !$this->irctext ) { - $sep = $this->msg( 'word-separator' ); - $sep = $this->plaintext ? $sep->text() : $sep->escaped(); - $action = $performer . $sep . $action; - } - - return $action; - } - - public function getActionLinks() { - if ( $this->revert !== null ) { - return $this->revert; - } - - if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) ) { - $this->revert = ''; - return $this->revert; - } - - $title = $this->entry->getTarget(); - $type = $this->entry->getType(); - $subtype = $this->entry->getSubtype(); - - // Do nothing. The implementation is handled by the hook modifiying the - // passed-by-ref parameters. This also changes the default value so that - // getComment() and getActionLinks() do not call them indefinitely. - $this->revert = ''; - - // This is to populate the $comment member of this instance so that it - // can be modified when calling the hook just below. - if ( $this->comment === null ) { - $this->getComment(); - } - - $params = $this->entry->getParameters(); - - Hooks::run( 'LogLine', [ $type, $subtype, $title, $params, - &$this->comment, &$this->revert, $this->entry->getTimestamp() ] ); - - return $this->revert; - } -}