X-Git-Url: http://git.cyclocoop.org/%28%28?a=blobdiff_plain;f=includes%2FChangesList.php;h=9c441afaaffa07fd70179a6efa7f38db2af95137;hb=2d56adb39328ac086bed031bc47b1c1448ee1db5;hp=dee8bf79477d9293e639b92357c78806d8a0a839;hpb=d975d28f37543608946872348759b9bd79a674f4;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ChangesList.php b/includes/ChangesList.php index dee8bf7947..9c441afaaf 100644 --- a/includes/ChangesList.php +++ b/includes/ChangesList.php @@ -122,7 +122,7 @@ class ChangesList extends ContextSource { private function preCacheMessages() { if ( !isset( $this->message ) ) { foreach ( array( - 'cur', 'diff', 'hist', 'last', 'blocklink', 'history', + 'cur', 'diff', 'hist', 'enhancedrc-history', 'last', 'blocklink', 'history', 'semicolon-separator', 'pipe-separator' ) as $msg ) { $this->message[$msg] = $this->msg( $msg )->escaped(); @@ -362,8 +362,6 @@ class ChangesList extends ContextSource { * @param $watched */ public function insertArticleLink( &$s, &$rc, $unpatrolled, $watched ) { - global $wgUseRCPatrol; - $params = array(); $articlelink = Linker::linkKnown( @@ -978,12 +976,30 @@ class EnhancedChangesList extends ChangesList { $r .= $this->getLanguage()->getDirMark(); $queryParams['curid'] = $curId; + # Changes message - $n = count( $block ); static $nchanges = array(); + static $sinceLastVisitMsg = array(); + + $n = count( $block ); if ( !isset( $nchanges[$n] ) ) { $nchanges[$n] = $this->msg( 'nchanges' )->numParams( $n )->escaped(); } + + $sinceLast = 0; + $unvisitedOldid = null; + foreach ( $block as $rcObj ) { + // Same logic as below inside main foreach + if ( $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched ) { + $sinceLast++; + $unvisitedOldid = $rcObj->mAttribs['rc_last_oldid']; + } + } + if ( !isset( $sinceLastVisitMsg[$sinceLast] ) ) { + $sinceLastVisitMsg[$sinceLast] = + $this->msg( 'enhancedrc-since-last-visit' )->numParams( $sinceLast )->escaped(); + } + # Total change link $r .= ' '; $logtext = ''; @@ -993,17 +1009,28 @@ class EnhancedChangesList extends ChangesList { } elseif ( $isnew ) { $logtext .= $nchanges[$n]; } else { - $params = $queryParams; - $params['diff'] = $currentRevision; - $params['oldid'] = $oldid; - $logtext .= Linker::link( $block[0]->getTitle(), $nchanges[$n], array(), - $params, + $queryParams + array( + 'diff' => $currentRevision, + 'oldid' => $oldid, + ), array( 'known', 'noclasses' ) ); + if ( $sinceLast > 0 && $sinceLast < $n ) { + $logtext .= $this->message['pipe-separator'] . Linker::link( + $block[0]->getTitle(), + $sinceLastVisitMsg[$sinceLast], + array(), + $queryParams + array( + 'diff' => $currentRevision, + 'oldid' => $unvisitedOldid, + ), + array( 'known', 'noclasses' ) + ); + } } } @@ -1011,7 +1038,7 @@ class EnhancedChangesList extends ChangesList { if ( $allLogs ) { // don't show history link for logs } elseif ( $namehidden || !$block[0]->getTitle()->exists() ) { - $logtext .= $this->message['pipe-separator'] . $this->message['hist']; + $logtext .= $this->message['pipe-separator'] . $this->message['enhancedrc-history']; } else { $params = $queryParams; $params['action'] = 'history'; @@ -1019,7 +1046,7 @@ class EnhancedChangesList extends ChangesList { $logtext .= $this->message['pipe-separator'] . Linker::linkKnown( $block[0]->getTitle(), - $this->message['hist'], + $this->message['enhancedrc-history'], array(), $params );