Manual:$wgConf
| Globale objecten: $wgConf | |
|---|---|
| Maak een site-configuratieobject. Wordt niet veel gebruikt in een standaardinstallatie. |
|
| Geïntroduceerd in versie: | 1.5.0 (r9670) |
| Verwijderd in versie: | nog steeds in gebruik |
| Toegelaten waardes: | Niet opgegeven |
| Standaardwaarde: | nieuw SiteConfiguration object. |
| Andere instellingen: Alfabetisch | Per functie | |
Details
Maak een site-configuratieobject. Wordt niet veel gebruikt in een standaardinstallatie.
Dit wordt gebruikt op Wikimedia's massa-installatie om een gecentraliseerd configuratiebestand te leveren voor een paar honderd wiki's, met standaardinstellingen per sitegroep en per-wiki overrides.
Op dit moment nodig door Extension:CentralAuth/nl om informatie per-site op te halen, bijvoorbeeld door te linken naar de juiste gebruikerspagina's op elke wiki.
Configuratie
Wiki's zijn gegroepeerd door het achtervoegsel op hun databasenaam; op een grote installatie kunnen er bijvoorbeeld 'enwiki' en 'enwikibooks' zijn, elk in een andere achtervoegselgroep.
Achtervoegsels moeten worden gedeclareerd in de suffixes lidvariabele van $wgConf als u $wgConf->siteFromDB() wilt gebruiken.
$wgConf->settings is een array met instellingen.
Het formaat is $wgConf->settings['wgSettingName']['wiki'].
Instellingen kunnen worden toegewezen aan (van de meer specifieke naar de minder specifieke, dit is het 'wiki' deel van $wgConf->settings zoals hierboven vermeld):
- een specifieke DB-naam.
- een wiki-tag (sinds 1.12.0)
- een achtervoegsel (bijvoorbeeld
'wiki'of'wiktionary') om alles in die achtervoegselgroep te beïnvloeden (kan worden bepaald met$wgConf->siteFromDB()) - 'default' om alle wiki's te beïnvloeden
Voor de stringinstellingen kunt u parameters definiëren die bij het uitpakken van de instellingen worden vervangen.
Het kan nuttig zijn wanneer de instelling hetzelfde formaat heeft voor alle wiki's.
Het formaat is $naam.
Wees voorzichtig met het gebruik van enkele aanhalingstekens (') of om e $ (\$) te escapen of het zal worden vervangen door de PHP-variabele (die op dat moment niet kan worden gedefinieerd).
Callback function
De callback van $wgConf->siteParamsCallback kan worden ingesteld op LocalSettings.php om extra "tags" te berekenen om instellingen te delen over een groep wiki's in een array $wgConf->settings.
Deze werken automatisch wanneer instellingen via SiteConfiguration::get() en gerelateerde functies worden opgehaald.
De functie callback zal het object SiteConfiguration accepteren als het eerste argument ontvangen en de wiki-id in het tweede argument. Het moet een array teruggeven met een of meer van de volgende optionele keysː
suffix: site's suffix (overschrijft$wgConf->siteFromDB())lang: site's lang (overschrijft$wgConf->siteFromDB())tags: reeks wiki-tags (in aanvulling op de standaard tag "suffix")params: array van vervangende parameters (in aanvulling op de standaardparameters "lang" en "site")
Ze worden samengevoegd met de parameters die worden doorgegeven aan SiteConfiguration::get() en soortgelijke functies.
Samenvoegen van instellingen
Arrays kunnen nu worden samengevoegd. Dit kan nuttig zijn voor $wgGroupPermissions . Om ze te gebruiken, moet je bij de key's een "+" voor de instellingen plaatsen die je wilt samenvoegen.
- Om uw aangepaste versie van de instelling samen te voegen met die in DefaultSettings.php, moet u de naam van de instelling voorvoegen met een
+(zoals'+wgGroupPermissions') - Om een meer specifiek niveau samen te voegen met een minder specifiek niveau, moet het niveau worden voorafgegaan door een
+.
De twee mogelijkheden kunnen samen worden gebruikt.
Het samenvoegen gebeurt in de volgende volgorde:
- Databasenaam
- Tags (in de volgorde van de extractiemethode, die op dit punt heel goed willekeurig zou kunnen worden)
- Wiki achtervoegsel
- Standaard
Wanneer een toets wordt aangetroffen die niet voorafgegaan is door een "+", zal de samenvoeging eindigen.
Voorbeeld met $wgGroupPermissions :
$wgConf->settings = [ # ... # '+' activeert een samenvoeging hiermee en de waarde van $wgGroupPermissions gedefinieerd in DefaultSettings.php '+wgGroupPermissions' => [ # Toestaan dat bureaucraten de status van remote wiki's kunnen veranderen en dat anonieme gebruikers pagina's kunnen aanmaken # (dit deel wordt niet samengevoegd met 'default' omdat er geen "+" voor 'centralwiki') 'centralwiki' => [ 'bureaucrat' => [ 'userrights-interwiki' => true, ], ], # Een wiki met een recht terugdraaien dat aan ingelogde gebruikers is gegeven, het deel 'default' wordt samengevoegd met deze waarde # (d.w.z. anonieme gebruikers kunnen geen pagina's aanmaken) '+somewiki' => [ 'user' => [ 'rollback' => true, ], ], # Anonieme gebruikers verbieden pagina's aan te maken. # Opmerking: de 'default' key mag nooit een "+" voor zich hebben 'default' => [ '*' => [ 'createpage' => false, 'createtalk' => false, ], ], ], # ... ];
De basissyntaxis is dus:
$wgConf->settings = [ 'wgConfigurationSetting' => [ 'default' => 'defaultvalue', 'wikidatabasename1' => 'waarde die de standaard voor deze wiki overschrijft', ], # Om de instellingen die u hier heeft ingesteld te combineren met die in DefaultSettings.php: '+wgConfigurationSetting' => [ # Opmerking: Dit en DefaultSettings.php zijn NIET hetzelfde! # De aangegeven standaardwaarde overschrijft die in DefaultSettings.php en wordt de nieuwe standaard voor al uw wiki's, tenzij u ervoor kiest om het te overschrijven voor een bepaalde wiki, zoals hier voor wikidatabasename1. 'default' => 'defaultvalue', 'wikidatabasename1' => 'waarde die de standaard voor deze wiki overschrijft', ], ];
Voorbeeld
In dit voorbeeld worden 3 wiki's gebruikt: dewiki, enwiki en frwiki. Ze staan op http://localhost/$wgDBname/ (d.w.z. http://localhost/dewiki/, http://localhost/enwiki/ en http://localhost/frwiki/).
Het gaat ervan uit dat de $wgDBname al gedefinieerd is.
$wgConf->settings gedeclareerd in InitialiseSettings.php , dit is niet vereist en kan worden gedaan in LocalSettings.php.InitialiseSettings.php
<?php $wgConf->settings = [ 'wgServer' => [ # Als u het gebruik van https wilt toestaan, gebruik '//localhost' en stel 'http://localhost' in op 'wgCanonicalServer' 'default' => 'http://localhost', ], 'wgCanonicalServer' => [ 'default' => 'http://localhost', ], 'wgScriptPath' => [ 'default' => '/$wiki', ], 'wgArticlePath' => [ 'default' => '/$wiki/index.php/1ドル', ], 'wgSitename' => [ 'default' => 'Wikipedia', 'frwiki' => 'Wikipédia', # met een Frans accent ], 'wgLanguageCode' => [ 'default' => '$lang', ], 'wgLocalInterwiki' => [ 'default' => '$lang', ], ];
LocalSettings.php
$wgLocalDatabases = [ 'dewiki', 'enwiki', 'frwiki', ]; $wgConf->wikis = $wgLocalDatabases; $wgConf->suffixes = [ 'wiki' ]; $wgConf->localVHosts = [ 'localhost' ]; require_once "$IP/InitialiseSettings.php"; function efGetSiteParams( $conf, $wiki ) { $site = null; $lang = null; foreach( $conf->suffixes as $suffix ) { if ( substr( $wiki, -strlen( $suffix ) ) === $suffix ) { $site = $suffix; $lang = substr( $wiki, 0, -strlen( $suffix ) ); break; } } return [ 'suffix' => $site, 'lang' => $lang, 'params' => [ 'lang' => $lang, 'site' => $site, 'wiki' => $wiki, ], 'tags' => [], ]; } $wgConf->suffixes = $wgLocalDatabases; $wgConf->siteParamsCallback = 'efGetSiteParams'; $wgConf->extractAllGlobals( $wgDBname );
Wikimedia-configuratie
Om te zien hoe Wikimedia $wgConf gebruikt om zijn wiki's te configureren zie:
- CommonSettings.php (Wikimedia's versie van
LocalSettings.php) - InitialiseSettings.php (voor
$wgConf->settings)
Zie ook
- Het SiteConfiguration.php bestand heeft een gids over hoe $wgConf werkt die misschien makkelijker te begrijpen is dan deze pagina.