From 9db190c7e736ec8d063187d4241b59feaf7dc2d1 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 22 Jun 2011 11:28:20 +0200 Subject: update to MediaWiki 1.17.0 --- includes/ChangesList.php | 114 ++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 66 deletions(-) (limited to 'includes/ChangesList.php') diff --git a/includes/ChangesList.php b/includes/ChangesList.php index 9f092991..b8bc4f55 100644 --- a/includes/ChangesList.php +++ b/includes/ChangesList.php @@ -1,4 +1,12 @@ getSkin(); $list = null; if( wfRunHooks( 'FetchChangesList', array( &$user, &$sk, &$list ) ) ) { - return $user->getOption( 'usenewrc' ) ? - new EnhancedChangesList( $sk ) : new OldChangesList( $sk ); + $new = $wgRequest->getBool( 'enhanced', $user->getOption( 'usenewrc' ) ); + return $new ? new EnhancedChangesList( $sk ) : new OldChangesList( $sk ); } else { return $list; } @@ -85,7 +91,7 @@ class ChangesList { * @param $bot Boolean * @return String */ - protected function recentChangesFlags( $new, $minor, $patrolled, $nothing = ' ', $bot = false ) { + protected function recentChangesFlags( $new, $minor, $patrolled, $nothing = ' ', $bot = false ) { $f = $new ? self::flag( 'newpage' ) : $nothing; $f .= $minor ? self::flag( 'minor' ) : $nothing; $f .= $bot ? self::flag( 'bot' ) : $nothing; @@ -123,47 +129,6 @@ class ChangesList { . ''; } - /** - * Some explanatory wrapper text for the given flag, to be used in a legend - * explaining what the flags mean. For instance, "N - new page". See - * also flag(). - * - * @param $key String: 'newpage', 'unpatrolled', 'minor', or 'bot' - * @return String: Raw HTML - */ - private static function flagLine( $key ) { - return wfMsgExt( "recentchanges-legend-$key", array( 'escapenoentities', - 'replaceafter' ), self::flag( $key ) ); - } - - /** - * A handy legend to tell users what the little "m", "b", and so on mean. - * - * @return String: Raw HTML - */ - public static function flagLegend() { - global $wgGroupPermissions, $wgLang; - - $flags = array( self::flagLine( 'newpage' ), - self::flagLine( 'minor' ) ); - - # Don't show info on bot edits unless there's a bot group of some kind - foreach ( $wgGroupPermissions as $rights ) { - if ( isset( $rights['bot'] ) && $rights['bot'] ) { - $flags[] = self::flagLine( 'bot' ); - break; - } - } - - if ( self::usePatrol() ) { - $flags[] = self::flagLine( 'unpatrolled' ); - } - - return '
' . - wfMsgExt( 'recentchanges-label-legend', 'parseinline', - $wgLang->commaList( $flags ) ) . '
'; - } - /** * Returns text for the start of the tabular part of RC * @return String @@ -595,14 +560,14 @@ class EnhancedChangesList extends ChangesList { * @return String */ public function beginRecentChangesList() { - global $wgStylePath, $wgStyleVersion; + global $wgOut; $this->rc_cache = array(); $this->rcMoveIndex = 0; $this->rcCacheIndex = 0; $this->lastdate = ''; $this->rclistOpen = false; - $script = Html::linkedScript( $wgStylePath . "/common/enhancedchanges.js?$wgStyleVersion" ); - return $script; + $wgOut->addModules( 'mediawiki.legacy.enhancedchanges' ); + return ''; } /** * Format a line for enhanced recentchange (aka with javascript and block of lines). @@ -628,7 +593,7 @@ class EnhancedChangesList extends ChangesList { # Process current cache $ret = $this->recentChangesBlock(); $this->rc_cache = array(); - $ret .= Xml::element( 'h4', null, $date ); + $ret .= Xml::element( 'h4', null, $date ) . "\n"; $this->lastdate = $date; } @@ -771,7 +736,15 @@ class EnhancedChangesList extends ChangesList { wfProfileIn( __METHOD__ ); - $r = ''; + # Add the namespace and title of the block as part of the class + if ( $block[0]->mAttribs['rc_log_type'] ) { + # Log entry + $classes = 'mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-log-' . $block[0]->mAttribs['rc_log_type'] . '-' . $block[0]->mAttribs['rc_title'] ); + } else { + $classes = 'mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-ns' . $block[0]->mAttribs['rc_namespace'] . '-' . $block[0]->mAttribs['rc_title'] ); + } + $r = Html::openElement( 'table', array( 'class' => $classes ) ) . + Html::openElement( 'tr' ); # Collate list of users $userlinks = array(); @@ -841,13 +814,13 @@ class EnhancedChangesList extends ChangesList { $tl = ""; $tl .= ""; - $r .= '
'.$tl.' '; + $r .= ''.$tl.' '; # Main line - $r .= $this->recentChangesFlags( $isnew, false, $unpatrolled, ' ', $bot ); + $r .= $this->recentChangesFlags( $isnew, false, $unpatrolled, ' ', $bot ); # Timestamp - $r .= ' '.$block[0]->timestamp.' '; + $r .= ' '.$block[0]->timestamp.' '; # Article link if( $namehidden ) { @@ -951,8 +924,8 @@ class EnhancedChangesList extends ChangesList { #$r .= '
'.$this->spacerArrow(); $r .= '
'; $r .= $this->spacerIndent() . $this->spacerIndent(); - $r .= $this->recentChangesFlags( $rc_new, $rc_minor, $rcObj->unpatrolled, ' ', $rc_bot ); - $r .= ' '; + $r .= $this->recentChangesFlags( $rc_new, $rc_minor, $rcObj->unpatrolled, ' ', $rc_bot ); + $r .= ' '; $params = $queryParams; @@ -1067,7 +1040,7 @@ class EnhancedChangesList extends ChangesList { * @return String: HTML tag */ protected function spacerIndent() { - return '     '; + return '     '; } /** @@ -1082,19 +1055,27 @@ class EnhancedChangesList extends ChangesList { # Extract fields from DB into the function scope (rc_xxxx variables) // FIXME: Would be good to replace this extract() call with something // that explicitly initializes variables. - $classes = array(); // TODO implement + // TODO implement extract( $rcObj->mAttribs ); $query['curid'] = $rc_cur_id; - $r = ''; - $r .= '
' . $this->spacerArrow() . ' '; + if( $rc_log_type ) { + # Log entry + $classes = 'mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-log-' . $rc_log_type . '-' . $rcObj->mAttribs['rc_title'] ); + } else { + $classes = 'mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-ns' . $rcObj->mAttribs['rc_namespace'] . '-' . $rcObj->mAttribs['rc_title'] ); + } + $r = Html::openElement( 'table', array( 'class' => $classes ) ) . + Html::openElement( 'tr' ); + + $r .= '' . $this->spacerArrow() . ' '; # Flag and Timestamp if( $rc_type == RC_MOVE || $rc_type == RC_MOVE_OVER_REDIRECT ) { - $r .= '    '; // 4 flags -> 4 spaces + $r .= '    '; // 4 flags -> 4 spaces } else { - $r .= $this->recentChangesFlags( $rc_type == RC_NEW, $rc_minor, $rcObj->unpatrolled, ' ', $rc_bot ); + $r .= $this->recentChangesFlags( $rc_type == RC_NEW, $rc_minor, $rcObj->unpatrolled, ' ', $rc_bot ); } - $r .= ' '.$rcObj->timestamp.' '; + $r .= ' '.$rcObj->timestamp.' '; # Article or log link if( $rc_log_type ) { $logtitle = Title::newFromText( "Log/$rc_log_type", NS_SPECIAL ); @@ -1140,6 +1121,7 @@ class EnhancedChangesList extends ChangesList { $this->insertComment( $r, $rcObj ); $this->insertRollback( $r, $rcObj ); # Tags + $classes = explode( ' ', $classes ); $this->insertTags( $r, $rcObj, $classes ); # Show how many people are watching this if enabled $r .= $this->numberofWatchingusers($rcObj->numberofWatchingusers); -- cgit v1.2.3-54-g00ecf