JsonUnitStorage::class, 'args' => [ __DIR__ . '/unitConversionConfig.json' ] ]; if ( isset( $wmgWikibaseTermboxEnabled ) ) { $wgWBRepoSettings['termboxEnabled'] = $wmgWikibaseTermboxEnabled; } if ( isset( $wmgWikibaseSSRTermboxServerUrl ) ) { $wgWBRepoSettings['ssrServerUrl'] = $wmgWikibaseSSRTermboxServerUrl; } if ( isset( $wmgWikibaseTaintedReferencesEnabled ) ) { $wgWBRepoSettings['taintedReferencesEnabled'] = $wmgWikibaseTaintedReferencesEnabled; } if ( isset( $wmgWikibaseRestApiEnabled ) && $wmgWikibaseRestApiEnabled ) { $wgRestAPIAdditionalRouteFiles[] = 'extensions/Wikibase/repo/rest-api/routes.json'; if ( isset( $wmgWikibaseRestApiDevelopmentEnabled ) && $wmgWikibaseRestApiDevelopmentEnabled ) { $wgRestAPIAdditionalRouteFiles[] = 'extensions/Wikibase/repo/rest-api/routes.dev.json'; } } if ( isset( $wmgWikibaseStringLimits ) ) { $wgWBRepoSettings['string-limits'] = $wmgWikibaseStringLimits; } // Temporary, see T184933 $wgWBRepoSettings['useKartographerGlobeCoordinateFormatter'] = true; $wgWBRepoSettings['idGeneratorSeparateDbConnection'] = true; $wgWBRepoSettings['entityTypesWithoutRdfOutput'] = $wmgWikibaseEntityTypesWithoutRdfOutput; // T235033 if ( isset( $wmgWikibaseRepoDataBridgeEnabled ) ) { $wgWBRepoSettings['dataBridgeEnabled'] = $wmgWikibaseRepoDataBridgeEnabled; } if ( $wgWBQualityConstraintsFormatCheckerShellboxRatio ) { $wgShellboxUrls['constraint-regex-checker'] = $wmgLocalServices['shellbox-constraints']; } $wgWBRepoSettings['enableRefTabs'] = $wmgWikibaseRepoEnableRefTabs; // entity data for URLs matching these patterns will be cached in Varnish and purged if needed; // all other entity data URLs will receive no caching $wgWBRepoSettings['entityDataCachePaths'] = [ // // JSON from entity page JS, compare wikibase.entityPage.entityLoaded.js '/wiki/Special:EntityData/{entity_id}.json?revision={revision_id}', // Turtle from Query Service updater, compare WikibaseRepository.java '/wiki/Special:EntityData/{entity_id}.ttl?flavor=dump&revision={revision_id}', // third pattern with high volume of requests in Hive, source unknown '/wiki/Special:EntityData?id={entity_id}&revision={revision_id}&format=json', ]; // Temporary, T241422 $wgWBRepoSettings['tmpSerializeEmptyListsAsObjects'] = $wmgWikibaseTmpSerializeEmptyListsAsObjects; // Temporary, T251480 if ( isset( $wmgWikibaseTmpNormalizeDataValues ) ) { $wgWBRepoSettings['tmpNormalizeDataValues'] = $wmgWikibaseTmpNormalizeDataValues; } // Tag Wikidata edits based on origin: T236893 if ( $wgDBname === 'wikidatawiki' ) { $wgWBRepoSettings['updateRepoTags'] = [ 'client-automatic-update' ]; $wgWBRepoSettings['viewUiTags'] = [ 'wikidata-ui' ]; $wgWBRepoSettings['specialPageTags'] = [ 'wikidata-ui' ]; $wgWBRepoSettings['termboxTags'] = [ 'wikidata-ui', 'termbox' ]; } // Temporary, T297393 if ( isset( $wmgWikibaseTmpEnableMulLanguageCode ) ) { $wgWBRepoSettings['tmpEnableMulLanguageCode'] = $wmgWikibaseTmpEnableMulLanguageCode; } // Temporary, added in T339104, to be removed in T330217 if ( isset( $wmgWikibaseTmpAlwaysShowMulLanguageCode ) ) { $wgWBRepoSettings['tmpAlwaysShowMulLanguageCode'] = $wmgWikibaseTmpAlwaysShowMulLanguageCode; } } if ( $wmgUseWikibaseClient ) { $wbSiteGroup = $wmgWikibaseSiteGroup ?? null; $wgWBClientSettings['languageLinkSiteGroup'] = $wbSiteGroup; if ( in_array( $wgDBname, [ 'commonswiki', 'foundationwiki', 'mediawikiwiki', 'metawiki', 'outreachwiki', 'specieswiki', 'wikifunctionswiki', 'wikimaniawiki' ] ) ) { $wgWBClientSettings['languageLinkSiteGroup'] = 'wikipedia'; } if ( $wgDBname === 'sourceswiki' ) { $wgWBClientSettings['languageLinkAllowedSiteGroups'] = [ 'wikisource', 'sources' ]; } $wgWBClientSettings['siteGroup'] = $wbSiteGroup; if ( $wgDBname === 'wikidatawiki' || $wgDBname === 'testwikidatawiki' ) { $wgWBClientSettings['languageLinkSiteGroup'] = 'wikipedia'; $wgWBClientSettings['showExternalRecentChanges'] = false; } // TODO clean up slightly messy client only config in this condition above this line // to be safe, keeping this here although $wgDBname is default setting $wgWBClientSettings['siteGlobalID'] = $wgDBname; $wgWBClientSettings['namespaces'] = $wmgWikibaseClientNamespacesWithRepoAccess; $wgWBClientSettings['excludeNamespaces'] = static function () { global $wgDBname, $wgProofreadPageNamespaceIds; $namespaceInfo = MediaWikiServices::getInstance()->getNamespaceInfo(); // @fixme 102 is LiquidThread comments on wikinews and elsewhere? // but is the Extension: namespace on mediawiki.org, so we need // to allow wiki-specific settings here. $excludeNamespaces = array_merge( $namespaceInfo->getTalkNamespaces(), // 90 => LiquidThread threads // 92 => LiquidThread summary // 118 => Draft // 1198 => NS_TRANSLATE // 2600 => Flow topic [ NS_USER, NS_FILE, NS_MEDIAWIKI, 90, 92, 118, 1198, 2600 ], array_values( $wgProofreadPageNamespaceIds ) ); if ( in_array( $wgDBname, MWWikiversions::readDbListFile( 'wiktionary' ) ) ) { $excludeNamespaces[] = NS_MAIN; // citations namespace $excludeNamespaces[] = 114; } return $excludeNamespaces; }; // IS-labs.php has null as the default beta doesn't have a defined property order url. // To avoid an undefined variable wrap this in a condition. if ( isset( $wmgWikibaseClientPropertyOrderUrl ) ) { $wgWBClientSettings['propertyOrderUrl'] = $wmgWikibaseClientPropertyOrderUrl; } $wgWBClientSettings['repoUrl'] = $wmgWikibaseClientRepoUrl; $wgWBClientSettings['wikiPageUpdaterDbBatchSize'] = 20; $wgWBClientSettings['disabledAccessEntityTypes'] = $wmgWikibaseDisabledAccessEntityTypes; $wgWBClientSettings['maxSerializedEntitySize'] = $wmgWikibaseMaxSerializedEntitySize; $wgWBClientSettings['siteLinkGroups'] = $wmgWBSiteLinkGroups; $wgWBClientSettings['specialSiteLinkGroups'] = $wmgWikibaseClientSpecialSiteLinkGroups; $wgWBClientSettings['badgeClassNames'] = $wmgWikibaseClientBadgeClassNames; $wgWBClientSettings['allowLocalShortDesc'] = $wmgWikibaseAllowLocalShortDesc; $wgWBClientSettings['forceLocalShortDesc'] = $wmgWikibaseForceLocalShortDesc; $wgWBClientSettings['allowDataTransclusion'] = $wmgWikibaseEnableData; $wgWBClientSettings['allowDataAccessInUserLanguage'] = $wmgWikibaseAllowDataAccessInUserLanguage; $wgWBClientSettings['entityAccessLimit'] = $wmgWikibaseEntityAccessLimit; $wgWBClientSettings['injectRecentChanges'] = $wmgWikibaseClientInjectRecentChanges; $wgWBClientSettings['sharedCacheKeyGroup'] = $wmgWikibaseCachePrefix; $wgWBClientSettings['sharedCacheKeyPrefix'] = $wmgWBSharedCacheKey; $wgWBClientSettings['sharedCacheDuration'] = 60 * 60 * 24; $wgWBClientSettings['trackLuaFunctionCallsPerSiteGroup'] = $wmgWikibaseClientTrackLuaFunctionCallsPerSiteGroup; $wgWBClientSettings['trackLuaFunctionCallsPerWiki'] = $wmgWikibaseClientTrackLuaFunctionCallsPerWiki; // Sample function call counters at 1:100 (T277817) $wgWBClientSettings['trackLuaFunctionCallsSampleRate'] = 0.01; // T142103 $wgWBClientSettings['sendEchoNotification'] = true; $wgWBClientSettings['echoIcon'] = $wmgWikibaseClientEchoIcon; $wgWBClientSettings['disabledUsageAspects'] = $wmgWikibaseDisabledUsageAspects; $wgWBClientSettings['entityUsageModifierLimits'] = [ 'D' => 10, 'L' => 10, 'C' => 33 ]; if ( isset( $wmgEntityUsageModifierLimitsStatement ) ) { $wgWBClientSettings['entityUsageModifierLimits']['C'] = $wmgEntityUsageModifierLimitsStatement; } // T208763 if ( isset( $wmgWikibaseClientPageSchemaNamespaces ) ) { $wgWBClientSettings['pageSchemaNamespaces'] = $wmgWikibaseClientPageSchemaNamespaces; } $wgWBClientSettings['entitySources'] = $wmgWikibaseEntitySources; if ( isset( $wmgWikibaseClientItemAndPropertySourceName ) ) { $wgWBClientSettings['itemAndPropertySourceName'] = $wmgWikibaseClientItemAndPropertySourceName; } $wgWBClientSettings['addEntityUsagesBatchSize'] = $wmgWikibaseClientAddEntityUsagesBatchSize; // Temporary, see T210926 $wgWBClientSettings['useKartographerMaplinkInWikitext'] = true; // T226816 if ( isset( $wmgWikibaseClientDataBridgeEnabled ) && isset( $wmgWikibaseClientDataBridgeHrefRegExp ) ) { $wgWBClientSettings['dataBridgeEnabled'] = $wmgWikibaseClientDataBridgeEnabled; $wgWBClientSettings['dataBridgeHrefRegExp'] = $wmgWikibaseClientDataBridgeHrefRegExp; if ( isset( $wmgWikibaseClientDataBridgeEditTags ) ) { $wgWBClientSettings['dataBridgeEditTags'] = $wmgWikibaseClientDataBridgeEditTags; } if ( isset( $wmgWikibaseClientWellKnownReferencePropertyIds ) ) { $wgWBClientSettings['wellKnownReferencePropertyIds'] = $wmgWikibaseClientWellKnownReferencePropertyIds; } } // T267745 – effectively subscribes client wikis to descriptions of linked items even if not explicitly used during parse $wgWBClientSettings['enableImplicitDescriptionUsage'] = true; $wgWBClientSettings['linkItemTags'] = [ 'client-linkitem-change' ]; // Temporary, T297393 if ( isset( $wmgWikibaseTmpEnableMulLanguageCode ) ) { $wgWBClientSettings['tmpEnableMulLanguageCode'] = $wmgWikibaseTmpEnableMulLanguageCode; } } unset( $wmgWBSharedCacheKey );