From 4ac9fa081a7c045f6a9f1cfc529d82423f485b2e Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 8 Dec 2013 09:55:49 +0100 Subject: Update to MediaWiki 1.22.0 --- includes/logging/LogFormatter.php | 412 +------------------------------------- 1 file changed, 10 insertions(+), 402 deletions(-) (limited to 'includes/logging/LogFormatter.php') diff --git a/includes/logging/LogFormatter.php b/includes/logging/LogFormatter.php index ace26bbe..8f60aee1 100644 --- a/includes/logging/LogFormatter.php +++ b/includes/logging/LogFormatter.php @@ -194,9 +194,9 @@ class LogFormatter { // Text of title the action is aimed at. $target = $entry->getTarget()->getPrefixedText(); $text = null; - switch( $entry->getType() ) { + switch ( $entry->getType() ) { case 'move': - switch( $entry->getSubtype() ) { + switch ( $entry->getSubtype() ) { case 'move': $movesource = $parameters['4::target']; $text = wfMessage( '1movedto2' ) @@ -215,7 +215,7 @@ class LogFormatter { break; case 'delete': - switch( $entry->getSubtype() ) { + switch ( $entry->getSubtype() ) { case 'delete': $text = wfMessage( 'deletedarticle' ) ->rawParams( $target )->inContentLanguage()->escaped(); @@ -246,7 +246,7 @@ class LogFormatter { break; case 'protect': - switch( $entry->getSubtype() ) { + switch ( $entry->getSubtype() ) { case 'protect': $text = wfMessage( 'protectedarticle' ) ->rawParams( $target . ' ' . $parameters[0] )->inContentLanguage()->escaped(); @@ -263,7 +263,7 @@ class LogFormatter { break; case 'newusers': - switch( $entry->getSubtype() ) { + switch ( $entry->getSubtype() ) { case 'newusers': case 'create': $text = wfMessage( 'newuserlog-create-entry' ) @@ -282,7 +282,7 @@ class LogFormatter { break; case 'upload': - switch( $entry->getSubtype() ) { + switch ( $entry->getSubtype() ) { case 'upload': $text = wfMessage( 'uploadedimage' ) ->rawParams( $target )->inContentLanguage()->escaped(); @@ -305,7 +305,7 @@ class LogFormatter { } else { $newgroups = wfMessage( 'rightsnone' )->inContentLanguage()->escaped(); } - switch( $entry->getSubtype() ) { + switch ( $entry->getSubtype() ) { case 'rights': $text = wfMessage( 'rightslogentry' ) ->rawParams( $target, $oldgroups, $newgroups )->inContentLanguage()->escaped(); @@ -320,7 +320,7 @@ class LogFormatter { // case 'suppress' --private log -- aaron (sign your messages so we know who to blame in a few years :-D) // default: } - if( is_null( $text ) ) { + if ( is_null( $text ) ) { $text = $this->getPlainActionText(); } @@ -479,7 +479,7 @@ class LogFormatter { protected function formatParameterValue( $type, $value ) { $saveLinkFlood = $this->linkFlood; - switch( strtolower( trim( $type ) ) ) { + switch ( strtolower( trim( $type ) ) ) { case 'raw': $value = Message::rawParam( $value ); break; @@ -775,7 +775,7 @@ class LegacyLogFormatter extends LogFormatter { return $this->msg( 'parentheses' )->rawParams( $this->context->getLanguage()->pipeList( $links ) )->escaped(); // Show unmerge link - } elseif( $type == 'merge' && $subtype == 'merge' ) { + } elseif ( $type == 'merge' && $subtype == 'merge' ) { if ( !$this->context->getUser()->isAllowed( 'mergehistory' ) ) { return ''; } @@ -814,395 +814,3 @@ class LegacyLogFormatter extends LogFormatter { } } -/** - * This class formats move log entries. - * @since 1.19 - */ -class MoveLogFormatter extends LogFormatter { - public function getPreloadTitles() { - $params = $this->extractParameters(); - return array( Title::newFromText( $params[3] ) ); - } - - protected function getMessageKey() { - $key = parent::getMessageKey(); - $params = $this->getMessageParameters(); - if ( isset( $params[4] ) && $params[4] === '1' ) { - $key .= '-noredirect'; - } - return $key; - } - - protected function getMessageParameters() { - $params = parent::getMessageParameters(); - $oldname = $this->makePageLink( $this->entry->getTarget(), array( 'redirect' => 'no' ) ); - $newname = $this->makePageLink( Title::newFromText( $params[3] ) ); - $params[2] = Message::rawParam( $oldname ); - $params[3] = Message::rawParam( $newname ); - return $params; - } - - public function getActionLinks() { - if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) // Action is hidden - || $this->entry->getSubtype() !== 'move' - || !$this->context->getUser()->isAllowed( 'move' ) ) - { - return ''; - } - - $params = $this->extractParameters(); - $destTitle = Title::newFromText( $params[3] ); - if ( !$destTitle ) { - return ''; - } - - $revert = Linker::linkKnown( - SpecialPage::getTitleFor( 'Movepage' ), - $this->msg( 'revertmove' )->escaped(), - array(), - array( - 'wpOldTitle' => $destTitle->getPrefixedDBkey(), - 'wpNewTitle' => $this->entry->getTarget()->getPrefixedDBkey(), - 'wpReason' => $this->msg( 'revertmove' )->inContentLanguage()->text(), - 'wpMovetalk' => 0 - ) - ); - return $this->msg( 'parentheses' )->rawParams( $revert )->escaped(); - } -} - -/** - * This class formats delete log entries. - * @since 1.19 - */ -class DeleteLogFormatter extends LogFormatter { - protected function getMessageKey() { - $key = parent::getMessageKey(); - if ( in_array( $this->entry->getSubtype(), array( 'event', 'revision' ) ) ) { - if ( count( $this->getMessageParameters() ) < 5 ) { - return "$key-legacy"; - } - } - return $key; - } - - protected function getMessageParameters() { - if ( isset( $this->parsedParametersDeleteLog ) ) { - return $this->parsedParametersDeleteLog; - } - - $params = parent::getMessageParameters(); - $subtype = $this->entry->getSubtype(); - if ( in_array( $subtype, array( 'event', 'revision' ) ) ) { - // $params[3] here is 'revision' for page revisions, 'oldimage' for file versions, or a comma-separated list of log_ids for log entries. - // $subtype here is 'revision' for page revisions and file versions, or 'event' for log entries. - if ( - ( $subtype === 'event' && count( $params ) === 6 ) || - ( $subtype === 'revision' && isset( $params[3] ) && ( $params[3] === 'revision' || $params[3] === 'oldimage' ) ) - ) { - $paramStart = $subtype === 'revision' ? 4 : 3; - - $old = $this->parseBitField( $params[$paramStart+1] ); - $new = $this->parseBitField( $params[$paramStart+2] ); - list( $hid, $unhid, $extra ) = RevisionDeleter::getChanges( $new, $old ); - $changes = array(); - foreach ( $hid as $v ) { - $changes[] = $this->msg( "$v-hid" )->plain(); - } - foreach ( $unhid as $v ) { - $changes[] = $this->msg( "$v-unhid" )->plain(); - } - foreach ( $extra as $v ) { - $changes[] = $this->msg( $v )->plain(); - } - $changeText = $this->context->getLanguage()->listToText( $changes ); - - $newParams = array_slice( $params, 0, 3 ); - $newParams[3] = $changeText; - $count = count( explode( ',', $params[$paramStart] ) ); - $newParams[4] = $this->context->getLanguage()->formatNum( $count ); - return $this->parsedParametersDeleteLog = $newParams; - } else { - return $this->parsedParametersDeleteLog = array_slice( $params, 0, 3 ); - } - } - - return $this->parsedParametersDeleteLog = $params; - } - - protected function parseBitField( $string ) { - // Input is like ofield=2134 or just the number - if ( strpos( $string, 'field=' ) === 1 ) { - list( , $field ) = explode( '=', $string ); - return (int) $field; - } else { - return (int) $string; - } - } - - public function getActionLinks() { - $user = $this->context->getUser(); - if ( !$user->isAllowed( 'deletedhistory' ) || $this->entry->isDeleted( LogPage::DELETED_ACTION ) ) { - return ''; - } - - switch ( $this->entry->getSubtype() ) { - case 'delete': // Show undelete link - if( $user->isAllowed( 'undelete' ) ) { - $message = 'undeletelink'; - } else { - $message = 'undeleteviewlink'; - } - $revert = Linker::linkKnown( - SpecialPage::getTitleFor( 'Undelete' ), - $this->msg( $message )->escaped(), - array(), - array( 'target' => $this->entry->getTarget()->getPrefixedDBkey() ) - ); - return $this->msg( 'parentheses' )->rawParams( $revert )->escaped(); - - case 'revision': // If an edit was hidden from a page give a review link to the history - $params = $this->extractParameters(); - if ( !isset( $params[3] ) || !isset( $params[4] ) ) { - return ''; - } - - // Different revision types use different URL params... - $key = $params[3]; - // This is a CSV of the IDs - $ids = explode( ',', $params[4] ); - - $links = array(); - - // If there's only one item, we can show a diff link - if ( count( $ids ) == 1 ) { - // Live revision diffs... - if ( $key == 'oldid' || $key == 'revision' ) { - $links[] = Linker::linkKnown( - $this->entry->getTarget(), - $this->msg( 'diff' )->escaped(), - array(), - array( - 'diff' => intval( $ids[0] ), - 'unhide' => 1 - ) - ); - // Deleted revision diffs... - } elseif ( $key == 'artimestamp' || $key == 'archive' ) { - $links[] = Linker::linkKnown( - SpecialPage::getTitleFor( 'Undelete' ), - $this->msg( 'diff' )->escaped(), - array(), - array( - 'target' => $this->entry->getTarget()->getPrefixedDBkey(), - 'diff' => 'prev', - 'timestamp' => $ids[0] - ) - ); - } - } - - // View/modify link... - $links[] = Linker::linkKnown( - SpecialPage::getTitleFor( 'Revisiondelete' ), - $this->msg( 'revdel-restore' )->escaped(), - array(), - array( - 'target' => $this->entry->getTarget()->getPrefixedText(), - 'type' => $key, - 'ids' => implode( ',', $ids ), - ) - ); - - return $this->msg( 'parentheses' )->rawParams( - $this->context->getLanguage()->pipeList( $links ) )->escaped(); - - case 'event': // Hidden log items, give review link - $params = $this->extractParameters(); - if ( !isset( $params[3] ) ) { - return ''; - } - // This is a CSV of the IDs - $query = $params[3]; - // Link to each hidden object ID, $params[1] is the url param - $revert = Linker::linkKnown( - SpecialPage::getTitleFor( 'Revisiondelete' ), - $this->msg( 'revdel-restore' )->escaped(), - array(), - array( - 'target' => $this->entry->getTarget()->getPrefixedText(), - 'type' => 'logging', - 'ids' => $query - ) - ); - return $this->msg( 'parentheses' )->rawParams( $revert )->escaped(); - default: - return ''; - } - } -} - -/** - * This class formats patrol log entries. - * @since 1.19 - */ -class PatrolLogFormatter extends LogFormatter { - protected function getMessageKey() { - $key = parent::getMessageKey(); - $params = $this->getMessageParameters(); - if ( isset( $params[5] ) && $params[5] ) { - $key .= '-auto'; - } - return $key; - } - - protected function getMessageParameters() { - $params = parent::getMessageParameters(); - - $target = $this->entry->getTarget(); - $oldid = $params[3]; - $revision = $this->context->getLanguage()->formatNum( $oldid, true ); - - if ( $this->plaintext ) { - $revlink = $revision; - } elseif ( $target->exists() ) { - $query = array( - 'oldid' => $oldid, - 'diff' => 'prev' - ); - $revlink = Linker::link( $target, htmlspecialchars( $revision ), array(), $query ); - } else { - $revlink = htmlspecialchars( $revision ); - } - - $params[3] = Message::rawParam( $revlink ); - return $params; - } -} - -/** - * This class formats new user log entries. - * @since 1.19 - */ -class NewUsersLogFormatter extends LogFormatter { - protected function getMessageParameters() { - $params = parent::getMessageParameters(); - $subtype = $this->entry->getSubtype(); - if ( $subtype === 'create2' || $subtype === 'byemail' ) { - if ( isset( $params[3] ) ) { - $target = User::newFromId( $params[3] ); - } else { - $target = User::newFromName( $this->entry->getTarget()->getText(), false ); - } - $params[2] = Message::rawParam( $this->makeUserLink( $target ) ); - $params[3] = $target->getName(); - } - return $params; - } - - public function getComment() { - $timestamp = wfTimestamp( TS_MW, $this->entry->getTimestamp() ); - if ( $timestamp < '20080129000000' ) { - # Suppress $comment from old entries (before 2008-01-29), - # not needed and can contain incorrect links - return ''; - } - return parent::getComment(); - } - - public function getPreloadTitles() { - $subtype = $this->entry->getSubtype(); - if ( $subtype === 'create2' || $subtype === 'byemail' ) { - //add the user talk to LinkBatch for the userLink - return array( Title::makeTitle( NS_USER_TALK, $this->entry->getTarget()->getText() ) ); - } - return array(); - } -} - -/** - * This class formats rights log entries. - * @since 1.21 - */ -class RightsLogFormatter extends LogFormatter { - protected function makePageLink( Title $title = null, $parameters = array() ) { - global $wgContLang, $wgUserrightsInterwikiDelimiter; - - if ( !$this->plaintext ) { - $text = $wgContLang->ucfirst( $title->getText() ); - $parts = explode( $wgUserrightsInterwikiDelimiter, $text, 2 ); - - if ( count( $parts ) === 2 ) { - $titleLink = WikiMap::foreignUserLink( $parts[1], $parts[0], - htmlspecialchars( $title->getPrefixedText() ) ); - - if ( $titleLink !== false ) { - return $titleLink; - } - } - } - - return parent::makePageLink( $title, $parameters ); - } - - protected function getMessageKey() { - $key = parent::getMessageKey(); - $params = $this->getMessageParameters(); - if ( !isset( $params[3] ) && !isset( $params[4] ) ) { - $key .= '-legacy'; - } - return $key; - } - - protected function getMessageParameters() { - $params = parent::getMessageParameters(); - - // Really old entries - if ( !isset( $params[3] ) && !isset( $params[4] ) ) { - return $params; - } - - $oldGroups = $params[3]; - $newGroups = $params[4]; - - // Less old entries - if ( $oldGroups === '' ) { - $oldGroups = array(); - } elseif ( is_string( $oldGroups ) ) { - $oldGroups = array_map( 'trim', explode( ',', $oldGroups ) ); - } - if ( $newGroups === '' ) { - $newGroups = array(); - } elseif ( is_string( $newGroups ) ) { - $newGroups = array_map( 'trim', explode( ',', $newGroups ) ); - } - - $userName = $this->entry->getTarget()->getText(); - if ( !$this->plaintext && count( $oldGroups ) ) { - foreach ( $oldGroups as &$group ) { - $group = User::getGroupMember( $group, $userName ); - } - } - if ( !$this->plaintext && count( $newGroups ) ) { - foreach ( $newGroups as &$group ) { - $group = User::getGroupMember( $group, $userName ); - } - } - - $lang = $this->context->getLanguage(); - if ( count( $oldGroups ) ) { - $params[3] = $lang->listToText( $oldGroups ); - } else { - $params[3] = $this->msg( 'rightsnone' )->text(); - } - if ( count( $newGroups ) ) { - // Array_values is used here because of bug 42211 - // see use of array_unique in UserrightsPage::doSaveUserGroups on $newGroups. - $params[4] = $lang->listToText( array_values( $newGroups ) ); - } else { - $params[4] = $this->msg( 'rightsnone' )->text(); - } - - return $params; - } -} -- cgit v1.2.3-54-g00ecf