Jens Ohlig has uploaded a new change for review. https://gerrit.wikimedia.org/r/52784
Change subject: Lua support to access the repo data (DO NOT MERGE) ...................................................................... Lua support to access the repo data (DO NOT MERGE) Change-Id: Iaa0c98832c3be1409d2389dc0f3d1b296ba0662f --- M client/WikibaseClient.hooks.php M client/WikibaseClient.php A client/includes/WikibaseLibrary.php A client/resources/mw.wikibase.lua M lib/WikibaseLib.php 5 files changed, 47 insertions(+), 2 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/84/52784/1 diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php index 0a59dc4..75d1934 100644 --- a/client/WikibaseClient.hooks.php +++ b/client/WikibaseClient.hooks.php @@ -398,6 +398,20 @@ return true; } + /** + * Hooks for Scribunto + * + * @return bool + */ + public static function onScribuntoExternalLibraries ( string $engine, array &$extraLibraries ) { + $extraLibraries[] = array( "mw.wikibase.lua" ); + return true; + } + + public static function onScribuntoExternalLibraryPaths ( string $engine, array &$extraLibraryPaths ) { + $extraLibraryPath[] = array( $dir . 'resources/' ); + return true; + } /** * Hook for modifying the query for fetching recent changes * @see https://www.mediawiki.org/wiki/Manual:Hooks/SpecialRecentChangesQuery diff --git a/client/WikibaseClient.php b/client/WikibaseClient.php index 597a8a5..f08709c 100644 --- a/client/WikibaseClient.php +++ b/client/WikibaseClient.php @@ -94,6 +94,9 @@ // test $wgAutoloadClasses['Wikibase\Test\MockRepository'] = $dir . 'tests/phpunit/MockRepository.php'; +// Scribunto +$wgAutoloadClasses['Scribunto_LuaWikibaseLibrary'] = $dir . 'includes/WikibaseLibrary.php'; + // Hooks $wgHooks['UnitTestsList'][] = '\Wikibase\ClientHooks::registerUnitTests'; $wgHooks['LoadExtensionSchemaUpdates'][] = '\Wikibase\ClientHooks::onSchemaUpdate'; @@ -111,7 +114,8 @@ $wgHooks['GetPreferences'][] = '\Wikibase\ClientHooks::onGetPreferences'; $wgHooks['BeforePageDisplay'][] = '\Wikibase\ClientHooks::onBeforePageDisplay'; $wgHooks['SpecialPageBeforeExecute'][] = '\Wikibase\ClientHooks::onSpecialPageBeforeExecute'; - +$wgHooks['ScribuntoExternalLibraryPaths'][] = '\Wikibase\ClientHooks::onScribuntoExternalLibraryPaths'; +$wgHooks['ScribuntoExternalLibraries'][] = '\Wikibase\ClientHooks::onScribuntoExternalLibraries'; // extension hooks $wgHooks['WikibasePollHandle'][] = '\Wikibase\ClientHooks::onWikibasePollHandle'; $wgHooks['WikibaseDeleteData'][] = '\Wikibase\ClientHooks::onWikibaseDeleteData'; diff --git a/client/includes/WikibaseLibrary.php b/client/includes/WikibaseLibrary.php new file mode 100644 index 0000000..c1c9eec --- /dev/null +++ b/client/includes/WikibaseLibrary.php @@ -0,0 +1,15 @@ +<?php +class Scribunto_LuaWikibaseLibrary extends Scribunto_LuaLibraryBase { + function register() { + $this->getEngine()->registerInterface( 'mw.wikibase.lua', + array( 'getEntity' => $this->getEntity ), + array() + ); + } + + public function getEntity( $entity ) { + $this->checkType( 'getEntity', 1, $entity, 'string' ); + $content = \Wikibase\EntityContentFactory::singleton()->newFromEntity( $entity ); + return array( $content->getEntity() ); + } +} diff --git a/client/resources/mw.wikibase.lua b/client/resources/mw.wikibase.lua new file mode 100644 index 0000000..02e36d4 --- /dev/null +++ b/client/resources/mw.wikibase.lua @@ -0,0 +1,12 @@ +wikibase = {} + +function wikibase.setupInterface() +-- mw = mw or {} +-- mw.wikibase = wikibase +-- for k, v in pairs( mw_interface ) do +-- wikibase[k] = v +-- end +-- package.loaded['mw.wikibase'] = wikibase +end + +return wikibase diff --git a/lib/WikibaseLib.php b/lib/WikibaseLib.php index 2955626..87e3ef5 100644 --- a/lib/WikibaseLib.php +++ b/lib/WikibaseLib.php @@ -119,7 +119,7 @@ $wgAutoloadClasses['Wikibase\Term'] = $dir . 'includes/Term.php'; $wgAutoloadClasses['Wikibase\Utils'] = $dir . 'includes/Utils.php'; $wgAutoloadClasses['Wikibase\WikibaseDiffOpFactory'] = $dir . 'includes/WikibaseDiffOpFactory.php'; - +$wgAutoloadClasses['Scribunto_LuaWikibaseLibrary'] = $dir . 'includes/WikibaseLibrary.php'; // includes/changes $wgAutoloadClasses['Wikibase\Change'] = $dir . 'includes/changes/Change.php'; $wgAutoloadClasses['Wikibase\ChangeRow'] = $dir . 'includes/changes/ChangeRow.php'; -- To view, visit https://gerrit.wikimedia.org/r/52784 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iaa0c98832c3be1409d2389dc0f3d1b296ba0662f Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Jens Ohlig <jens.oh...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits