* @ingroup DifferenceEngine
*/
+use MediaWiki\MediaWikiServices;
use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Revision\SlotRecord;
+use MediaWiki\Storage\NameTableAccessException;
/**
* DifferenceEngine is responsible for rendering the difference between two revisions as HTML.
// Load tags information for both revisions
$dbr = wfGetDB( DB_REPLICA );
+ $changeTagDefStore = MediaWikiServices::getInstance()->getChangeTagDefStore();
if ( $this->mOldid !== false ) {
- $this->mOldTags = $dbr->selectField(
- 'tag_summary',
- 'ts_tags',
- [ 'ts_rev_id' => $this->mOldid ],
+ $tagIds = $dbr->selectFieldValues(
+ 'change_tag',
+ 'ct_tag_id',
+ [ 'ct_rev_id' => $this->mOldid ],
__METHOD__
);
+ $tags = [];
+ foreach ( $tagIds as $tagId ) {
+ try {
+ $tags[] = $changeTagDefStore->getName( (int)$tagId );
+ } catch ( NameTableAccessException $exception ) {
+ continue;
+ }
+ }
+ $this->mOldTags = implode( ',', $tags );
} else {
$this->mOldTags = false;
}
- $this->mNewTags = $dbr->selectField(
- 'tag_summary',
- 'ts_tags',
- [ 'ts_rev_id' => $this->mNewid ],
+
+ $tagIds = $dbr->selectFieldValues(
+ 'change_tag',
+ 'ct_tag_id',
+ [ 'ct_rev_id' => $this->mNewid ],
__METHOD__
);
+ $tags = [];
+ foreach ( $tagIds as $tagId ) {
+ try {
+ $tags[] = $changeTagDefStore->getName( (int)$tagId );
+ } catch ( NameTableAccessException $exception ) {
+ continue;
+ }
+ }
+ $this->mNewTags = implode( ',', $tags );
return true;
}
use MediaWiki\MediaWikiServices;
use MediaWiki\Revision\RevisionRecord;
+use MediaWiki\Storage\NameTableAccessException;
use Wikimedia\Rdbms\IResultWrapper;
/**
$minor = $rev->isMinor() ? ChangesList::flag( 'minor' ) : '';
- $tags = wfGetDB( DB_REPLICA )->selectField(
- 'tag_summary',
- 'ts_tags',
- [ 'ts_rev_id' => $rev->getId() ],
+ $tagIds = wfGetDB( DB_REPLICA )->selectFieldValues(
+ 'change_tag',
+ 'ct_tag_id',
+ [ 'ct_rev_id' => $rev->getId() ],
__METHOD__
);
+ $tags = [];
+ $changeTagDefStore = MediaWikiServices::getInstance()->getChangeTagDefStore();
+ foreach ( $tagIds as $tagId ) {
+ try {
+ $tags[] = $changeTagDefStore->getName( (int)$tagId );
+ } catch ( NameTableAccessException $exception ) {
+ continue;
+ }
+ }
+ $tags = implode( ',', $tags );
$tagSummary = ChangeTags::formatSummaryRow( $tags, 'deleteddiff', $this->getContext() );
// FIXME This is reimplementing DifferenceEngine#getRevisionHeader