MarkTraceur has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/386692 )
Change subject: [WIP] Look up entity IDs based on title ...................................................................... [WIP] Look up entity IDs based on title WIP - not sure what the hook interface will look like in the end, but this works currently. Bug: T177022 Change-Id: Icd239d7321f678a7142655555ff2593b0b85a1f2 --- M extension.json M src/WikibaseMediaInfoHooks.php 2 files changed, 39 insertions(+), 11 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseMediaInfo refs/changes/92/386692/1 diff --git a/extension.json b/extension.json index ccf7452..1d454dd 100644 --- a/extension.json +++ b/extension.json @@ -41,6 +41,9 @@ ], "ImagePageAfterImageLinks": [ "Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onImagePageAfterImageLinks" + ], + "GetEntityIdForLink": [ + "Wikibase\\MediaInfo\\WikibaseMediaInfoHooks::onGetEntityIdForLink" ] }, "MessagesDirs": { diff --git a/src/WikibaseMediaInfoHooks.php b/src/WikibaseMediaInfoHooks.php index 18100fc..890e160 100644 --- a/src/WikibaseMediaInfoHooks.php +++ b/src/WikibaseMediaInfoHooks.php @@ -2,6 +2,7 @@ namespace Wikibase\MediaInfo; +use Title; use ImagePage; use MediaWiki\MediaWikiServices; use Wikibase\MediaInfo\DataModel\MediaInfo; @@ -14,6 +15,34 @@ * @author Bene* < benestar.wikime...@gmail.com > */ class WikibaseMediaInfoHooks { + + /** + * Helper function to get MediaInfo entity ID based on title + * + * @param Title $pageTitle + * + * @return EntityId|null + */ + private static function getEntityIdForTitle( Title $pageTitle ) { + if ( !$pageTitle->inNamespace( NS_FILE ) ) { + return null; + } + + $pageId = $pageTitle->getArticleID(); + + if ( !$pageId ) { + return; + } + + $wikibaseRepo = WikibaseRepo::getDefaultInstance(); + $entityId = $wikibaseRepo->getEntityIdComposer()->composeEntityId( + '', + MediaInfo::ENTITY_TYPE, + $pageId + ); + + return $entityId; + } /** * Hook to register the MediaInfo entity namespaces for EntityNamespaceLookup. @@ -47,22 +76,18 @@ public static function onImagePageAfterImageLinks( ImagePage $page, &$html ) { $imgTitle = $page->getTitle(); - $pageId = $imgTitle->getArticleID(); - - if ( !$pageId ) { - return; - } - + $entityId = self::getEntityIdForTitle( $imgTitle ); $wikibaseRepo = WikibaseRepo::getDefaultInstance(); - $entityId = $wikibaseRepo->getEntityIdComposer()->composeEntityId( - '', - MediaInfo::ENTITY_TYPE, - $pageId - ); $title = $wikibaseRepo->getEntityTitleLookup()->getTitleForId( $entityId ); $linkHtml = MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink( $title ); $html .= '<h2>' . $linkHtml . '</h2>'; } + public static function onGetEntityIdForLink( $siteId, $pageTitle, array &$results ) { + $imgTitle = Title::newFromText( $pageTitle ); + $entityId = self::getEntityIdForTitle( $imgTitle ); + $results['alternative'][] = $entityId; + return true; + } } -- To view, visit https://gerrit.wikimedia.org/r/386692 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icd239d7321f678a7142655555ff2593b0b85a1f2 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/WikibaseMediaInfo Gerrit-Branch: master Gerrit-Owner: MarkTraceur <mholmqu...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits