X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Flogging%2FLogEventsList.php;h=43829109cb616f1c57d8cf17857a20ecf4d2797d;hb=5049af1048c77b1ea6ab3193688d23a48ddf8df0;hp=0cf584b0a2a1f9977b702fb40472d339f1551e8d;hpb=85ee6b473eac9dee92bf9784c5672864ed760f4f;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/logging/LogEventsList.php b/includes/logging/LogEventsList.php index 0cf584b0a2..1463499874 100644 --- a/includes/logging/LogEventsList.php +++ b/includes/logging/LogEventsList.php @@ -2,7 +2,7 @@ /** * Contain classes to list log entries * - * Copyright © 2004 Brion Vibber , 2008 Aaron Schulz + * Copyright © 2004 Brion Vibber * https://www.mediawiki.org/ * * This program is free software; you can redistribute it and/or modify @@ -23,6 +23,9 @@ * @file */ +use MediaWiki\MediaWikiServices; +use Wikimedia\Rdbms\IDatabase; + class LogEventsList extends ContextSource { const NO_ACTION_LINK = 1; const NO_EXTRA_USER_LINKS = 2; @@ -91,7 +94,7 @@ class LogEventsList extends ContextSource { // For B/C, we take strings, but make sure they are converted... $types = ( $types === '' ) ? [] : (array)$types; - $tagSelector = ChangeTags::buildTagFilterSelector( $tagFilter ); + $tagSelector = ChangeTags::buildTagFilterSelector( $tagFilter, false, $this->getContext() ); $html = Html::hidden( 'title', $title->getPrefixedDBkey() ); @@ -142,10 +145,11 @@ class LogEventsList extends ContextSource { */ private function getFilterLinks( $filter ) { // show/hide links - $messages = [ $this->msg( 'show' )->escaped(), $this->msg( 'hide' )->escaped() ]; + $messages = [ $this->msg( 'show' )->text(), $this->msg( 'hide' )->text() ]; // Option value -> message mapping $links = []; $hiddens = ''; // keep track for "go" button + $linkRenderer = MediaWikiServices::getInstance()->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. @@ -155,7 +159,7 @@ class LogEventsList extends ContextSource { $hideVal = 1 - intval( $val ); $query[$queryKey] = $hideVal; - $link = Linker::linkKnown( + $link = $linkRenderer->makeKnownLink( $this->getTitle(), $messages[$hideVal], [], @@ -386,9 +390,18 @@ class LogEventsList extends ContextSource { [ 'mw-logline-' . $entry->getType() ], $newClasses ); + $attribs = [ + 'data-mw-logid' => $entry->getId(), + 'data-mw-logaction' => $entry->getFullType(), + ]; + $ret = "$del $time $action $comment $revert $tagDisplay"; + + // Let extensions add data + Hooks::run( 'LogEventsListLineEnding', [ $this, &$ret, $entry, &$classes, &$attribs ] ); + $attribs = wfArrayFilterByKey( $attribs, [ Sanitizer::class, 'isReservedDataAttribute' ] ); + $attribs['class'] = implode( ' ', $classes ); - return Html::rawElement( 'li', [ 'class' => $classes ], - "$del $time $action $comment $revert $tagDisplay" ) . "\n"; + return Html::rawElement( 'li', $attribs, $ret ) . "\n"; } /** @@ -541,7 +554,8 @@ class LogEventsList extends ContextSource { * @param string $user The user who made the log entries * @param array $param Associative Array with the following additional options: * - lim Integer Limit of items to show, default is 50 - * - conds Array Extra conditions for the query (e.g. "log_action != 'revision'") + * - conds Array Extra conditions for the query + * (e.g. 'log_action != ' . $dbr->addQuotes( 'revision' )) * - showIfEmpty boolean Set to false if you don't want any output in case the loglist is empty * if set to true (default), "No matching items in log" is displayed if loglist is empty * - msgKey Array If you want a nice box with a message, set this to the key of the message. @@ -672,9 +686,9 @@ class LogEventsList extends ContextSource { $urlParam = array_merge( $urlParam, $extraUrlParams ); } - $s .= Linker::linkKnown( + $s .= MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink( SpecialPage::getTitleFor( 'Log' ), - $context->msg( 'log-fulllog' )->escaped(), + $context->msg( 'log-fulllog' )->text(), [], $urlParam );