Aude has uploaded a new change for review. https://gerrit.wikimedia.org/r/75356
Change subject: (bug 51855) remove code that assumes site links from only one site group ...................................................................... (bug 51855) remove code that assumes site links from only one site group This makes the change comments for site link changes generic, and stores the site id instead of "lang". This allows things work with multiple site groups (e.g. wikivoyage), and allows in the future, more elegant comments for site link changes. Change-Id: I071e9dad970144e12aefa1296a8cb4f057d36ab9 --- M client/includes/ChangeHandler.php M client/includes/recentchanges/ExternalChangesLine.php M client/tests/phpunit/includes/ChangeHandlerTest.php 3 files changed, 17 insertions(+), 39 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/56/75356/1 diff --git a/client/includes/ChangeHandler.php b/client/includes/ChangeHandler.php index 8eb7ac5..66f1adf 100644 --- a/client/includes/ChangeHandler.php +++ b/client/includes/ChangeHandler.php @@ -836,19 +836,16 @@ } else if ( $diffOp instanceof \Diff\DiffOpChange ) { $params['message'] = 'wikibase-comment-sitelink-change'; - // fall back to global id... not great, but we have to do *something* // FIXME: this code appears to be doing something incorrect as "best effort" // rather than allowing for proper error handling - $navIds = $this->site->getNavigationIds(); - $iwPrefix = isset( $navIds[0] ) ? $navIds[0] : $this->site->getGlobalId(); $params['sitelink'] = array( 'oldlink' => array( - 'lang' => $iwPrefix, + 'site' => $siteGlobalId, 'page' => $diffOp->getOldValue() ), 'newlink' => array( - 'lang' => $iwPrefix, + 'site' => $siteGlobalId, 'page' => $diffOp->getNewValue() ) ); @@ -862,18 +859,17 @@ foreach( $siteLinkDiff as $siteKey => $diffOp ) { $site = $this->sites->getSite( $siteKey ); + if( !$site ) { trigger_error( "Could not get site with globalId $siteKey.", E_USER_WARNING ); continue; } - // assumes interwiki prefix is same as lang code - // true for wikipedia but need todo more robustly - $iwPrefix = $site->getLanguageCode(); + if ( $diffOp instanceof \Diff\DiffOpAdd ) { $params['message'] = $messagePrefix . 'add'; $params['sitelink'] = array( 'newlink' => array( - 'lang' => $iwPrefix, + 'site' => $siteKey, 'page' => $diffOp->getNewValue() ) ); @@ -881,18 +877,18 @@ $params['message'] = $messagePrefix . 'remove'; $params['sitelink'] = array( 'oldlink' => array( - 'lang' => $iwPrefix, + 'site' => $siteKey, 'page' => $diffOp->getOldValue() ) ); } else if ( $diffOp instanceof \Diff\DiffOpChange ) { $params['sitelink'] = array( 'oldlink' => array( - 'lang' => $iwPrefix, + 'site' => $siteKey, 'page' => $diffOp->getOldValue() ), 'newlink' => array( - 'lang' => $iwPrefix, + 'site' => $siteKey, 'page' => $diffOp->getNewValue() ) ); diff --git a/client/includes/recentchanges/ExternalChangesLine.php b/client/includes/recentchanges/ExternalChangesLine.php index 49ab4a1..ff02ba4 100644 --- a/client/includes/recentchanges/ExternalChangesLine.php +++ b/client/includes/recentchanges/ExternalChangesLine.php @@ -148,27 +148,9 @@ // @todo: provide a link to the entity $message = wfMessage( 'wikibase-comment-linked' )->text(); } else if ( array_key_exists( 'sitelink', $comment ) ) { - $sitelinks = $comment['sitelink']; - if ( array_key_exists( 'oldlink', $sitelinks ) && array_key_exists( 'newlink', $sitelinks ) ) { - $oldLink = self::wikiLink( $sitelinks['oldlink']['page'], $sitelinks['oldlink']['lang'] ); - $newLink = self::wikiLink( $sitelinks['newlink']['page'], $sitelinks['newlink']['lang'] ); - $param = array( $oldLink, $newLink ); - } else if ( array_key_exists( 'oldlink', $sitelinks ) ) { - $param = self::wikiLink( $sitelinks['oldlink']['page'], $sitelinks['oldlink']['lang'] ); - } else if ( array_key_exists( 'newlink', $sitelinks ) ) { - $param = self::wikiLink( $sitelinks['newlink']['page'], $sitelinks['newlink']['lang'] ); - } - - if ( $param !== null ) { - if ( is_array( $param ) ) { - $message = wfMessage( $comment['message'] )->rawParams( $param[0], $param[1] )->parse(); - } else { - $message = wfMessage( $comment['message'] )->rawParams( $param )->parse(); - } - } - } - - if ( $message === null ) { + // @fixme site link change message + $message = wfMessage( 'wikibase-comment-update' )->text(); + } else { $message = wfMessage( $comment['message'] )->text(); } } else { diff --git a/client/tests/phpunit/includes/ChangeHandlerTest.php b/client/tests/phpunit/includes/ChangeHandlerTest.php index 095f13e..484bf08 100644 --- a/client/tests/phpunit/includes/ChangeHandlerTest.php +++ b/client/tests/phpunit/includes/ChangeHandlerTest.php @@ -892,7 +892,7 @@ // array( 'q100' => array( 'Emmy' ) ), // array( // 'sitelink' => array( -// 'newlink' => array( 'lang' => 'de', 'page' => 'Dummy' ), +// 'newlink' => array( 'site' => 'dewiki', 'page' => 'Dummy' ), // ), // 'message' => 'wikibase-comment-sitelink-add' // ) @@ -903,8 +903,8 @@ // array( 'q100' => array( 'Emmy' ) ), // array( // 'sitelink' => array( -// 'oldlink' => array( 'lang' => 'de', 'page' => 'Dummy' ), -// 'newlink' => array( 'lang' => 'de', 'page' => 'Dummy2' ), +// 'oldlink' => array( 'site' => 'dewiki', 'page' => 'Dummy' ), +// 'newlink' => array( 'site' => 'dewiki', 'page' => 'Dummy2' ), // ), // 'message' => 'wikibase-comment-sitelink-change' // ) @@ -915,8 +915,8 @@ array( 'q100' => array( 'Emmy' ) ), array( 'sitelink' => array( - 'oldlink' => array( 'lang' => 'en', 'page' => 'Emmy' ), - 'newlink' => array( 'lang' => 'en', 'page' => 'Emmy2' ), + 'oldlink' => array( 'site' => 'enwiki', 'page' => 'Emmy' ), + 'newlink' => array( 'site' => 'enwiki', 'page' => 'Emmy2' ), ), 'message' => 'wikibase-comment-sitelink-change' ) @@ -927,7 +927,7 @@ array( 'q100' => array( 'Emmy2' ) ), array( 'sitelink' => array( - 'oldlink' => array( 'lang' => 'de', 'page' => 'Dummy2' ), + 'oldlink' => array( 'site' => 'dewiki', 'page' => 'Dummy2' ), ), 'message' => 'wikibase-comment-sitelink-remove' ) -- To view, visit https://gerrit.wikimedia.org/r/75356 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I071e9dad970144e12aefa1296a8cb4f057d36ab9 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: mw1.22-wmf11 Gerrit-Owner: Aude <aude.w...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits