* @file
* @ingroup Feed
*/
+use MediaWiki\MediaWikiServices;
/**
* Helper functions for feeds
$purge = $wgRequest->getVal( 'action' ) === 'purge';
// Allow users with 'purge' right to clear feed caches
if ( $purge && $wgUser->isAllowed( 'purge' ) ) {
- $cache = ObjectCache::getMainWANInstance();
+ $cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
$cache->delete( $timekey, 1 );
$cache->delete( $key, 1 );
}
/**
* Format a diff for the newsfeed
*
- * @param object $row Row from the recentchanges table
+ * @param object $row Row from the recentchanges table, including fields as
+ * appropriate for CommentStore
* @return string
*/
public static function formatDiff( $row ) {
$timestamp,
$row->rc_deleted & Revision::DELETED_COMMENT
? wfMessage( 'rev-deleted-comment' )->escaped()
- : $row->rc_comment,
+ : CommentStore::getStore()->getComment( 'rc_comment', $row )->text,
$actiontext
);
}
/**
* Really format a diff for the newsfeed
*
- * @param Title $title Title object
+ * @param Title $title
* @param int $oldid Old revision's id
* @param int $newid New revision's id
* @param int $timestamp New revision's timestamp
if ( $newContent instanceof TextContent ) {
// only textual content has a "source view".
- $text = $newContent->getNativeData();
+ $text = $newContent->getText();
if ( $wgFeedDiffCutoff <= 0 || strlen( $text ) > $wgFeedDiffCutoff ) {
$html = null;
*/
public static function applyDiffStyle( $text ) {
$styles = [
- 'diff' => 'background-color: white; color:black;',
- 'diff-otitle' => 'background-color: white; color:black; text-align: center;',
- 'diff-ntitle' => 'background-color: white; color:black; text-align: center;',
- 'diff-addedline' => 'color:black; font-size: 88%; border-style: solid; '
+ 'diff' => 'background-color: #fff; color: #222;',
+ 'diff-otitle' => 'background-color: #fff; color: #222; text-align: center;',
+ 'diff-ntitle' => 'background-color: #fff; color: #222; text-align: center;',
+ 'diff-addedline' => 'color: #222; font-size: 88%; border-style: solid; '
. 'border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; '
. 'vertical-align: top; white-space: pre-wrap;',
- 'diff-deletedline' => 'color:black; font-size: 88%; border-style: solid; '
+ 'diff-deletedline' => 'color: #222; font-size: 88%; border-style: solid; '
. 'border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; '
. 'vertical-align: top; white-space: pre-wrap;',
- 'diff-context' => 'background-color: #f9f9f9; color: #333333; font-size: 88%; '
+ 'diff-context' => 'background-color: #f8f9fa; color: #222; font-size: 88%; '
. 'border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; '
- . 'border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;',
+ . 'border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;',
'diffchange' => 'font-weight: bold; text-decoration: none;',
];