Manual:$wgConf

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:$wgConf and the translation is 56% complete.
Outdated translations are marked like this.
Other languages:
English • ‎Nederlands • ‎español • ‎français • ‎magyar • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語
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.

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.

Het kan echter een beetje verwarrend zijn. :) Op dit moment nodig door Extensie:CentraalAanmelden 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 suffixen lidvariabele van $wgConf als u $wgConf->siteFromDB() wilt gebruiken.

$wgConf->settings is de reeks 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

Settings may be assigned to (from the more specific to the less specific, this is the 'wiki' part of $wgConf->settings as mentioned above):

  • a specific DB name.
  • a wiki tag (since 1.12.0)
  • a suffix (eg 'wiki' or 'wiktionary') to affect all in that suffix group (can be determined with $wgConf->siteFromDB())
  • 'default' to affect all wikis

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). It can be useful when the setting has the same format for all wikis. The format is $name. Be careful to use single quotes (') or to escape the $ (\$) or it will be replaced with the PHP variable (that can be not defined at that time).

1.13 en eerder

MediaWiki versie:
1.13

Bij het uitpakken van globale instellingen zal het object eerst het meer specifieke niveau zoeken (het eerste niveau in de lijst hierboven) en als het de instelling niet vindt, zal het zoeken in minder specifieke niveaus. Als het er een vindt, zal het zoeken naar minder specifieke niveaus. Dit betekent dat u moet letten op enkele specifieke instellingen, zoals $GroupPermissions, omdat het de instelling niet samenvoegt met minder specifieke niveaus, noch de standaardwaarde (die in DefaultSettings.php), u zult het zelf moeten doen. When it finds one, if won't search for less specific ones. This means that you have to pay attention for some specific settings, such as $wgGroupPermissions , because it doesn't merge the setting with less specific levels, nor the default value (the one in DefaultSettings.php), you'll need to do it by yourself.

Om de instellingen in globale variabelen uit te pakken, kunt u $wgConf->extractAllGlobals ( $wiki, $suffix, $params, $wikiTags ); gebruiken.

Parameters zijn:

  • $wiki: Wiki's database naam (over het algemeen $DBname). Je moet het zelf definiëren.
  • $suffix: Wiki's achtervoegsel, gebruikt om het achtervoegselniveau te krijgen.
  • $params: een reeks parameters die de naam van de Wiki aan zijn waarde koppelen.
  • $wikiTags: (sinds 1.12.0) array van wiki-tags.
  • $wiki - Wiki's database name (generally $wgDBname ). You have to define it yourself.
  • $suffix - Wiki's suffix, used to to get the suffix level.
  • $params - array of parameters mapping its name to its value.
  • $wikiTags - (ingeleid in 1.12.0) array of wiki tags.

1.14 en nieuwer

MediaWiki versie:
1.14

In 1.14.0 zijn enkele nieuwe functies toegevoegd. Het 1.13 en eerder deel kan echter nog steeds gebruikt worden.

Callback function

Sinds 1.14 is er een callback ingevoerd om de parameters die worden doorgegeven aan SiteConfiguration::get() en de bijbehorende functie te kunnen wijzigen. Het kan worden gebruikt om parameters te wijzigen wanneer dergelijke functies worden aangeroepen na LocalSettings.php (dit is het geval met CentralAuth). U kunt het definiëren in $wgConf->siteParamsCallback. De callback functie zal het SiteConfiguration object in het eerste argument ontvangen en de wiki naam in het tweede argument. Het moet een array teruggeven met de volgende key's (allemaal optioneel): It might be used to change parameters when such functions are called after LocalSettings.php (this is the case with CentralAuth). You can define it in $wgConf->siteParamsCallback. The callback function will receive the SiteConfiguration object in the first argument and the wiki name in the second one. It has to return an array with the following keys (all optional):

  • suffix: site's suffix (komt overeen met $suffix paramater van SiteConfiguration::get() en dergelijke)
  • lang: site's lang
  • tags: reeks wiki-tags (overeenkomend met de parameter $wikiTags)
  • params: array van te vervangen parameters (overeenkomend met $params parameter)

Ze worden samengevoegd met de parameters die worden doorgegeven aan SiteConfiguration::get() en soortgelijke functies. Als de suffix en lang worden ingevuld, worden ze gebruikt om het standaardgedrag van $wgConf->siteFromDB() te overschrijven.

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.

  • To merge your customized version of the setting with the one in DefaultSettings.php, prefix the setting's name with "+" (such as '+wgGroupPermissions')
  • To merge a more specific level with a less-specific one, prefix the level with a "+".

The two possibilities can be used together.

Het samenvoegen gebeurt in de volgende volgorde:

  1. Databasenaam
  2. Tags (in de volgorde van de extractiemethode, die op dit punt heel goed willekeurig zou kunnen worden)
  3. Wiki achtervoegsel
  4. Standaard

Wanneer een toets wordt aangetroffen die niet voorafgegaan is door een "+", zal de samenvoeging eindigen.

Voorbeeld met $wgGroupPermissions :

$wgConf->settings = array(

// ...

// '+' triggers a merge with this and the value of $wgGroupPermissions defined
// in DefaultSettings.php
'+wgGroupPermissions' => array(

    // Allow bureaucrats to change status on remote wikis
    // and allow anonymous users to create page (this part
    // will not be merged with 'default' since there's no
    // "+" in front of 'centralwiki')
    'centralwiki' => array(
        'bureaucrat' => array(
            'userrights-interwiki' => true,
        ),
    ),

    // A wiki with rollback right given to logged-in users
    // the 'default' part will be merged with this value
    // (i.e. anonymous users won't be able to create pages)
    '+somewiki' => array(
        'user' => array(
            'rollback' => true,
        ),
    ),

    // Disallow anonymous users to create pages.
    // Note: the 'default' key should never have a "+" in front of it
    'default' => array(
        '*' => array(
            'createpage' => false,
            'createtalk' => false,
        ),
    ),
),

// ...

);

De basissyntaxis is dus:

$wgConf->settings=array(
'wgConfigurationSetting'=>array(
    'default'=>'defaultvalue',
    'wikidatabasename1'=>'value that overrides default for this wiki',
),
//To merge the settings you set here with those in DefaultSettings.php:
'+wgConfigurationSetting'=>array(
/*Note: This and DefaultSettings.php are NOT the same! The default specified here
        overrides that in DefaultSettings.php, and becomes the new default for all
        your wikis unless you choose to override it for a particular wiki,
        like for wikidatabasename1 here */
    'default'=>'defaultvalue',
    'wikidatabasename1'=>'value that overrides default for this wiki',
),
);

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.

In dit voorbeeld wordt $wgConf->settings gedeclareerd in InitialiseSettings.php, dit is niet vereist en kan worden gedaan in LocalSettings.php.

InitialiseSettings.php

<?php

$wgConf->settings = array(

'wgServer' => array(
    // if you want to allow also usage of https, just use '//localhost'
    // and set 'http://localhost' at 'wgCanonicalServer'
    'default' => 'http://localhost',
),

'wgCanonicalServer' => array(
    'default' => 'http://localhost',
),

'wgScriptPath' => array(
    'default' => '/$wiki',
),

'wgArticlePath' => array(
    'default' => '/$wiki/index.php/$1',
),

'wgSitename' => array(
    'default' => 'Wikipedia',
    'frwiki' => 'Wikipédia', // accent in French
),

'wgLanguageCode' => array(
    'default' => '$lang',
),

'wgLocalInterwiki' => array(
    'default' => '$lang',
),

);

LocalSettings.php

1.13 en eerder

MediaWiki versie:
1.13


$wgLocalDatabases = array(
    'dewiki',
    'enwiki',
    'frwiki',
);

$wgConf->wikis = $wgLocalDatabases;
$wgConf->suffixes = array( 'wiki' );
$wgConf->localVHosts = array( 'localhost' );

require_once "$IP/InitialiseSettings.php";

list( $site, $lang ) = $wgConf->siteFromDB( $wgDBname );
$params = array(
    'site' => $site,
    'lang' => $lang,
    'wiki' => $wgDBname,
);
$wgConf->extractAllGlobals( $wgDBname, $site, $params, array() );

1.14 en nieuwer

MediaWiki versie:
1.14


$wgLocalDatabases = array(
    'dewiki',
    'enwiki',
    'frwiki',
);

$wgConf->wikis = $wgLocalDatabases;
$wgConf->suffixes = array( 'wiki' );
$wgConf->localVHosts = array( '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 array(
        'suffix' => $site,
        'lang' => $lang,
        'params' => array(
            'lang' => $lang,
            'site' => $site,
            'wiki' => $wiki,
        ),
        'tags' => array(),
    );
}

$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:

  • [$common-set CommonSettings.php] (Wikimedia's versie van LocalSettings.php)
  • [$init-set InitialiseSettings.php] (voor $wgConf->settings)
  • [$wgconf wgConf.php] (gebruikt door CommonSettings.php om $wgConf te initialiseren)

Zie ook

  • Het includes/SiteConfiguration.php bestand (of bekijk het op GitHub), heeft een gids over hoe $wgConf werkt die misschien makkelijker te begrijpen is dan deze pagina.