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

Reply via email to