X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Factions%2FHistoryAction.php;h=767a163e020d6070c51f66ce28b9a20ffa288017;hb=f7e1770fb832aa77bf4e16ce8cc815f2b24dd10d;hp=c1763fa1be33d38cda7643bd57c05510f7b0ceb4;hpb=c6adf0408cee1c0be97c222aa2689ec5800a84a4;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/actions/HistoryAction.php b/includes/actions/HistoryAction.php index c1763fa1be..7460340a96 100644 --- a/includes/actions/HistoryAction.php +++ b/includes/actions/HistoryAction.php @@ -23,6 +23,10 @@ * @ingroup Actions */ +use MediaWiki\MediaWikiServices; +use Wikimedia\Rdbms\ResultWrapper; +use Wikimedia\Rdbms\FakeResultWrapper; + /** * This class handles printing the history page for an article. In order to * be efficient, it uses timestamps rather than offsets for paging, to avoid @@ -58,9 +62,9 @@ class HistoryAction extends FormlessAction { protected function getDescription() { // Creation of a subtitle link pointing to [[Special:Log]] - return Linker::linkKnown( + return MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink( SpecialPage::getTitleFor( 'Log' ), - $this->msg( 'viewpagelogs' )->escaped(), + $this->msg( 'viewpagelogs' )->text(), [], [ 'page' => $this->getTitle()->getPrefixedText() ] ); @@ -144,6 +148,9 @@ class HistoryAction extends FormlessAction { $out->setStatusCode( 404 ); } $out->addWikiMsg( 'nohistory' ); + + $dbr = wfGetDB( DB_REPLICA ); + # show deletion/move log if there is an entry LogEventsList::showLogExtract( $out, @@ -151,7 +158,7 @@ class HistoryAction extends FormlessAction { $this->getTitle(), '', [ 'lim' => 10, - 'conds' => [ "log_action != 'revision'" ], + 'conds' => [ 'log_action != ' . $dbr->addQuotes( 'revision' ) ], 'showIfEmpty' => false, 'msgKey' => [ 'moveddeleted-notice' ] ] @@ -166,7 +173,7 @@ class HistoryAction extends FormlessAction { $year = $request->getInt( 'year' ); $month = $request->getInt( 'month' ); $tagFilter = $request->getVal( 'tagfilter' ); - $tagSelector = ChangeTags::buildTagFilterSelector( $tagFilter ); + $tagSelector = ChangeTags::buildTagFilterSelector( $tagFilter, false, $this->getContext() ); /** * Option to show only revisions that have been (partially) hidden via RevisionDelete @@ -426,7 +433,10 @@ class HistoryPager extends ReverseChronologicalPager { $queryInfo['options'], $this->tagFilter ); - Hooks::run( 'PageHistoryPager::getQueryInfo', [ &$this, &$queryInfo ] ); + + // Avoid PHP 7.1 warning of passing $this by reference + $historyPager = $this; + Hooks::run( 'PageHistoryPager::getQueryInfo', [ &$historyPager, &$queryInfo ] ); return $queryInfo; } @@ -734,9 +744,9 @@ class HistoryPager extends ReverseChronologicalPager { $undoTooltip = $latest ? [ 'title' => $this->msg( 'tooltip-undo' )->text() ] : []; - $undolink = Linker::linkKnown( + $undolink = MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink( $this->getTitle(), - $this->msg( 'editundo' )->escaped(), + $this->msg( 'editundo' )->text(), $undoTooltip, [ 'action' => 'edit', @@ -770,9 +780,11 @@ class HistoryPager extends ReverseChronologicalPager { $s .= ' . . ' . $s2; } - Hooks::run( 'PageHistoryLineEnding', [ $this, &$row, &$s, &$classes ] ); + $attribs = [ 'data-mw-revid' => $rev->getId() ]; + + Hooks::run( 'PageHistoryLineEnding', [ $this, &$row, &$s, &$classes, &$attribs ] ); + $attribs = wfArrayFilterByKey( $attribs, [ Sanitizer::class, 'isReservedDataAttribute' ] ); - $attribs = []; if ( $classes ) { $attribs['class'] = implode( ' ', $classes ); } @@ -788,16 +800,15 @@ class HistoryPager extends ReverseChronologicalPager { */ function revLink( $rev ) { $date = $this->getLanguage()->userTimeAndDate( $rev->getTimestamp(), $this->getUser() ); - $date = htmlspecialchars( $date ); if ( $rev->userCan( Revision::DELETED_TEXT, $this->getUser() ) ) { - $link = Linker::linkKnown( + $link = MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink( $this->getTitle(), $date, [ 'class' => 'mw-changeslist-date' ], [ 'oldid' => $rev->getId() ] ); } else { - $link = $date; + $link = htmlspecialchars( $date ); } if ( $rev->isDeleted( Revision::DELETED_TEXT ) ) { $link = "$link"; @@ -818,7 +829,7 @@ class HistoryPager extends ReverseChronologicalPager { if ( $latest || !$rev->userCan( Revision::DELETED_TEXT, $this->getUser() ) ) { return $cur; } else { - return Linker::linkKnown( + return MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink( $this->getTitle(), $cur, [], @@ -847,9 +858,10 @@ class HistoryPager extends ReverseChronologicalPager { return $last; } + $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer(); if ( $next === 'unknown' ) { # Next row probably exists but is unknown, use an oldid=prev link - return Linker::linkKnown( + return $linkRenderer->makeKnownLink( $this->getTitle(), $last, [], @@ -868,7 +880,7 @@ class HistoryPager extends ReverseChronologicalPager { return $last; } - return Linker::linkKnown( + return $linkRenderer->makeKnownLink( $this->getTitle(), $last, [],