[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Let LabelDescriptionLookup work in action=info in client for...
jenkins-bot has submitted this change and it was merged. Change subject: Let LabelDescriptionLookup work in action=info in client for EntityUsage .. Let LabelDescriptionLookup work in action=info in client for EntityUsage Bug: T145965 Change-Id: I6c03dd7ef67471e51807048816769a496fc1d931 --- M client/WikibaseClient.hooks.php M client/includes/Hooks/InfoActionHookHandler.php M client/includes/RepoLinker.php M client/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php 4 files changed, 195 insertions(+), 45 deletions(-) Approvals: Hoo man: Looks good to me, approved jenkins-bot: Verified diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php index 476e209..1a5ee70 100644 --- a/client/WikibaseClient.hooks.php +++ b/client/WikibaseClient.hooks.php @@ -31,6 +31,7 @@ use Wikibase\Client\WikibaseClient; use Wikibase\DataModel\Entity\EntityId; use Wikibase\Lib\AutoCommentFormatter; +use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory; /** * File defining the hook handlers for the Wikibase Client extension. @@ -409,6 +410,12 @@ $namespaceChecker = $wikibaseClient->getNamespaceChecker(); $usageLookup = $wikibaseClient->getStore()->getUsageLookup(); + $labelDescriptionLookupFactory = new LanguageFallbackLabelDescriptionLookupFactory( + $wikibaseClient->getLanguageFallbackChainFactory(), + $wikibaseClient->getTermLookup(), + $wikibaseClient->getTermBuffer() + ); + $idParser = $wikibaseClient->getEntityIdParser(); if ( !$namespaceChecker->isWikibaseEnabled( $context->getTitle()->getNamespace() ) ) { // shorten out @@ -420,7 +427,9 @@ $wikibaseClient->newRepoLinker(), $wikibaseClient->getStore()->getSiteLinkLookup(), $settings->getSetting( 'siteGlobalID' ), - $usageLookup + $usageLookup, + $labelDescriptionLookupFactory, + $idParser ); $pageInfo = $infoActionHookHandler->handle( $context, $pageInfo ); diff --git a/client/includes/Hooks/InfoActionHookHandler.php b/client/includes/Hooks/InfoActionHookHandler.php index 874fc4b..0c5f1e1 100644 --- a/client/includes/Hooks/InfoActionHookHandler.php +++ b/client/includes/Hooks/InfoActionHookHandler.php @@ -7,8 +7,10 @@ use Title; use Wikibase\Client\RepoLinker; use Wikibase\Client\Usage\UsageLookup; +use Wikibase\DataModel\Entity\EntityIdParser; use Wikibase\DataModel\Entity\ItemId; use Wikibase\Lib\Store\SiteLinkLookup; +use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory; use Wikibase\NamespaceChecker; /** @@ -44,13 +46,32 @@ */ private $usageLookup; - public function __construct( NamespaceChecker $namespaceChecker, RepoLinker $repoLinker, - SiteLinkLookup $siteLinkLookup, $siteId, UsageLookup $usageLookup ) { + /** +* @var LanguageFallbackLabelDescriptionLookupFactory +*/ + private $labelDescriptionLookupFactory; + + /** +* @var EntityIdParser +*/ + private $idParser; + + public function __construct( + NamespaceChecker $namespaceChecker, + RepoLinker $repoLinker, + SiteLinkLookup $siteLinkLookup, + $siteId, + UsageLookup $usageLookup, + LanguageFallbackLabelDescriptionLookupFactory $labelDescriptionLookupFactory, + EntityIdParser $idParser + ) { $this->namespaceChecker = $namespaceChecker; $this->repoLinker = $repoLinker; $this->siteLinkLookup = $siteLinkLookup; $this->siteId = $siteId; $this->usageLookup = $usageLookup; + $this->labelDescriptionLookupFactory = $labelDescriptionLookupFactory; + $this->idParser = $idParser; } /** @@ -165,12 +186,25 @@ ]; } $output = ''; - + $entityIds = array_map( + function( $entityId ) { + return $this->idParser->parse( $entityId ); + }, + array_keys( $usageAspectsByEntity ) + ); + $labelLookup = $this->labelDescriptionLookupFactory->newLabelDescriptionLookup( + $context->getLanguage(), + $entityIds + ); foreach ( $usageAspectsByEntity as $entityId => $aspects ) { + $label = $labelLookup->getLabel( $this->idParser->parse( $entityId ) ); + $text = $label === null ? $entit
[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Let LabelDescriptionLookup work in action=info in client for...
Ladsgroup has uploaded a new change for review. https://gerrit.wikimedia.org/r/312130 Change subject: Let LabelDescriptionLookup work in action=info in client for EntityUsage .. Let LabelDescriptionLookup work in action=info in client for EntityUsage Bug: T145965 Change-Id: I6c03dd7ef67471e51807048816769a496fc1d931 --- M client/WikibaseClient.hooks.php M client/includes/Hooks/InfoActionHookHandler.php M client/includes/RepoLinker.php M client/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php 4 files changed, 112 insertions(+), 8 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/30/312130/1 diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php index 476e209..1a5ee70 100644 --- a/client/WikibaseClient.hooks.php +++ b/client/WikibaseClient.hooks.php @@ -31,6 +31,7 @@ use Wikibase\Client\WikibaseClient; use Wikibase\DataModel\Entity\EntityId; use Wikibase\Lib\AutoCommentFormatter; +use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory; /** * File defining the hook handlers for the Wikibase Client extension. @@ -409,6 +410,12 @@ $namespaceChecker = $wikibaseClient->getNamespaceChecker(); $usageLookup = $wikibaseClient->getStore()->getUsageLookup(); + $labelDescriptionLookupFactory = new LanguageFallbackLabelDescriptionLookupFactory( + $wikibaseClient->getLanguageFallbackChainFactory(), + $wikibaseClient->getTermLookup(), + $wikibaseClient->getTermBuffer() + ); + $idParser = $wikibaseClient->getEntityIdParser(); if ( !$namespaceChecker->isWikibaseEnabled( $context->getTitle()->getNamespace() ) ) { // shorten out @@ -420,7 +427,9 @@ $wikibaseClient->newRepoLinker(), $wikibaseClient->getStore()->getSiteLinkLookup(), $settings->getSetting( 'siteGlobalID' ), - $usageLookup + $usageLookup, + $labelDescriptionLookupFactory, + $idParser ); $pageInfo = $infoActionHookHandler->handle( $context, $pageInfo ); diff --git a/client/includes/Hooks/InfoActionHookHandler.php b/client/includes/Hooks/InfoActionHookHandler.php index 874fc4b..17ff861 100644 --- a/client/includes/Hooks/InfoActionHookHandler.php +++ b/client/includes/Hooks/InfoActionHookHandler.php @@ -7,8 +7,10 @@ use Title; use Wikibase\Client\RepoLinker; use Wikibase\Client\Usage\UsageLookup; +use Wikibase\DataModel\Entity\EntityIdParser; use Wikibase\DataModel\Entity\ItemId; use Wikibase\Lib\Store\SiteLinkLookup; +use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory; use Wikibase\NamespaceChecker; /** @@ -44,13 +46,32 @@ */ private $usageLookup; - public function __construct( NamespaceChecker $namespaceChecker, RepoLinker $repoLinker, - SiteLinkLookup $siteLinkLookup, $siteId, UsageLookup $usageLookup ) { + /** +* @var LanguageFallbackLabelDescriptionLookupFactory +*/ + private $labelDescriptionLookupFactory; + + /** +* @var EntityIdParser +*/ + private $idParser; + + public function __construct( + NamespaceChecker $namespaceChecker, + RepoLinker $repoLinker, + SiteLinkLookup $siteLinkLookup, + $siteId, + UsageLookup $usageLookup, + LanguageFallbackLabelDescriptionLookupFactory $labelDescriptionLookupFactory, + EntityIdParser $idParser + ) { $this->namespaceChecker = $namespaceChecker; $this->repoLinker = $repoLinker; $this->siteLinkLookup = $siteLinkLookup; $this->siteId = $siteId; $this->usageLookup = $usageLookup; + $this->labelDescriptionLookupFactory = $labelDescriptionLookupFactory; + $this->idParser = $idParser; } /** @@ -165,12 +186,25 @@ ]; } $output = ''; - + $entityIds = array_map( + function( $entityId ) { + return $this->idParser->parse( $entityId ); + }, + array_keys( $usageAspectsByEntity ) + ); + $labelLookup = $this->labelDescriptionLookupFactory->newLabelDescriptionLookup( + $context->getLanguage(), + $entityIds + ); foreach ( $usageAspectsByEntity as $entityId => $aspects ) { + $label = $labelLookup->getLabel( $this->idParser->parse( $entityId ) );