X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/a538c1762363a002e5de6916f68bdfc7dcc517ad..f3d8422f1c3d8c1e8cf3cc04d9982b8cfb8878c4:/cookbooks/wiki/templates/default/mw-ext-Wikibase.inc.php.erb?ds=inline diff --git a/cookbooks/wiki/templates/default/mw-ext-Wikibase.inc.php.erb b/cookbooks/wiki/templates/default/mw-ext-Wikibase.inc.php.erb index d4c2b975c..0b69f5c94 100644 --- a/cookbooks/wiki/templates/default/mw-ext-Wikibase.inc.php.erb +++ b/cookbooks/wiki/templates/default/mw-ext-Wikibase.inc.php.erb @@ -1,11 +1,14 @@ WB_NS_ITEM, + 'property' => WB_NS_PROPERTY, + ]; + + $hookContainer = MediaWikiServices::getInstance()->getHookContainer(); + $hookContainer->run( 'WikibaseRepoEntityNamespaces', [ &$entityNamespaces ] ); + + return [ + $settings->getSetting( 'localEntitySourceName' ) => [ + 'entityNamespaces' => $entityNamespaces, + 'repoDatabase' => false, + 'baseUri' => $wgServer . '/entity/', + 'rdfNodeNamespacePrefix' => 'wd', + 'rdfPredicateNamespacePrefix' => '', + 'interwikiPrefix' => '', + ], + ]; + }; // Make sure we use the same keys on repo and clients, so we can share cached objects. - $wgWBRepoSettings['sharedCacheKeyPrefix'] = $wgDBname . ':WBL/' . rawurlencode( WBL_VERSION ); + $wgWBRepoSettings['sharedCacheKeyPrefix'] = $wgDBname . ':WBL'; + $wgWBRepoSettings['sharedCacheKeyGroup'] = $wgDBname; - // Tell MediaWiki to search the item namespace - // $wgNamespacesToBeSearchedDefault[WB_NS_ITEM] = true; + // Include Wikibase items in the regular search result by default + $wgNamespacesToBeSearchedDefault[WB_NS_ITEM] = true; // the special group includes all the sites in the specialSiteLinkGroups, // grouped together in a 'Pages linked to other sites' section. @@ -49,18 +70,65 @@ call_user_func( function() { // these are the site_group codes as listed in the sites table $wgWBRepoSettings['specialSiteLinkGroups'] = ['osm']; + + // This option will start working in Wikibase v1.33 release. Noop until then. + // https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/Wikibase/+/469872/ + $wgWBRepoSettings['enableEntitySearchUI'] = false; + } ); -// Adapted from "$IP/extensions/Wikibase/client/ExampleSettings.php"; +// Adapted from "$IP/extensions/Wikibase/client/config/WikibaseClient.example.php"; // The global site ID by which this wiki is known on the repo. // Defaults to $wgDBname. // $wgWBClientSettings['siteGlobalID'] = "osm"; -// $wgWBClientSettings['injectRecentChanges'] = true; -// $wgWBClientSettings['showExternalRecentChanges'] = true; + +$wgWBClientSettings['injectRecentChanges'] = true; +$wgWBClientSettings['showExternalRecentChanges'] = true; + +// Base URL for building links to the repository. +// Assumes your wiki is setup as "http://repo.example.org/wiki/" +// This can be protocol relative, such as "//www.wikidata.org" +$wgWBClientSettings['repoUrl'] = "https://wiki.openstreetmap.org"; + +// This setting is optional if you have the same type of setup for your +// repo and client. It will default to using the client's $wgArticlePath setting, +// and if you do not have $wgArticlePath set anywhere, MediaWiki has a default for it. +$wgWBClientSettings['repoArticlePath'] = "/wiki/$1"; + +// Assuming your wiki is setup with such script path as "http://repo.example.org/w/api.php". This +// should be the same as the $wgScriptPath setting if you have it set in your repo. If $wgScriptPath +// is not set, then MediaWiki assumes a default. +// +// If your client and repo are setup in the same way, then the below setting is optional and will +// default to what you have $wgScriptPath set in the client. +$wgWBClientSettings['repoScriptPath'] = "/w"; + +// Tell the client which namespace ID on the repo holds which type of entity. +$baseRepoNs = 120; + +define( 'WB_REPO_NS_ITEM', $baseRepoNs ); +define( 'WB_REPO_NS_PROPERTY', $baseRepoNs + 2 ); + +$wgWBClientSettings['entitySources'] = [ + 'local' => [ + 'repoDatabase' => $wgDBname, + 'baseUri' => $wgWBClientSettings['repoUrl'] . '/entity', + 'entityNamespaces' => [ + 'item' => WB_REPO_NS_ITEM, + 'property' => WB_REPO_NS_PROPERTY + ], + 'rdfNodeNamespacePrefix' => 'wd', + 'rdfPredicateNamespacePrefix' => '', + 'interwikiPrefix' => '', + ], +]; $wgWBClientSettings['namespaces'] = [ NS_MAIN ]; +// Avoid complaints that nobody seems to know the cause off... +$wgWBClientSettings['entityUsagePerPageLimit'] = 500; + // no edit rights for anonymous users $wgGroupPermissions['*']['item-term'] = false; $wgGroupPermissions['*']['item-merge'] = false; @@ -81,9 +149,5 @@ $wgGroupPermissions['data-admin']['item-merge'] = true; $wgGroupPermissions['data-admin']['property-create'] = true; -// ---- This should be set once formatUrl property is created -// $wgWBRepoSettings['formatterUrlProperty'] = 'P3'; - -// ---- This should be removed once all needed initial items and properties are set up -$wgNamespaceProtection[WB_NS_ITEM] = [ 'create-wb-items' ]; -$wgGroupPermissions['data-admin']['create-wb-items'] = true; +// See https://www.mediawiki.org/wiki/Wikibase/Installation/Advanced_configuration#Define_links_for_external_identifiers +$wgWBRepoSettings['formatterUrlProperty'] = 'P8';