Manual:$wgConf/cs

Category:MediaWiki configuration settings/cs#ConfCategory:MediaWiki configuration settings introduced in version 1.5.0/cs#ConfCategory:MediaWiki configuration settings still in use/cs#ConfCategory:Global Objects variables/cs#Conf
Globální objekty: $wgConf
Vytvoří objekt konfigurace webu. Ve výchozí instalaci se příliš nepoužívá.
Zavedeno od verze:1.5.0 (r9670)
Odstraněno od verze:stále se používá
Povolené hodnoty:Blíže neurčeno
Výchozí hodnota:nový SiteConfiguration objekt.

Podrobnosti

Vytvoří objekt konfigurace webu. Ve výchozí instalaci se příliš nepoužívá.

Toto se používá při hromadné instalaci Wikimedie k poskytnutí centralizovaného konfiguračního souboru pro několik stovek wiki, poskytujících výchozí hodnoty pro skupinu stránek a přepisy pro wiki.

Aktuálně je potřeba Rozšíření:CentralAuth k načtení informací o jednotlivých stránkách, např. odkazování na správné uživatelské stránky na každé wiki.

Konfigurace

Wiki jsou seskupeny podle přípony na názvech jejich databází. Na velké instalaci může být např. 'enwiki' a 'enwiktionary' a 'enwikibooks', každá v jiné skupině přípon. Chcete-li použít $wgConf->siteFromDB(), musí být přípony deklarovány v členské proměnné suffixes $wgConf.

$wgConf->settings je pole nastavení. Jeho formát je $wgConf->settings['wgSettingName']['wiki'].

Nastavení lze přiřadit (od specifičtějšího po méně konkrétní, toto je část 'wiki' $wgConf->settings, jak je uvedeno výše):

  • konkrétní název DB.
  • značka wiki (od 1.12.0)
  • přípona (např. 'wiki' nebo 'wikislovník'), která ovlivní všechny v této skupině přípon (lze určit pomocí $wgConf->siteFromDB())
  • 'výchozí' ovlivní všechny wikiny

Pro nastavení řetězce můžete definovat parametry, které budou nahrazeny při extrahování nastavení. Může být užitečné, když má nastavení stejný formát pro všechny wikiny. Formát je $Jméno. Dejte pozor, abyste používali jednoduché uvozovky (') nebo kód $ (\$), jinak bude nahrazen proměnnou PHP (tj. nelze v té době definovat).

Funkce zpětného volání (Callback)

Od 1.14 byl zaveden callback, aby bylo možné upravit parametry předané SiteConfiguration::get() a související funkci. Může být použit ke změně parametrů, když jsou takové funkce volány přes LocalSettings.php (to je případ CentralAuth). Můžete to definovat v $wgConf->siteParamsCallback. Funkce zpětného volání obdrží objekt SiteConfiguration v prvním argumentu a název wiki ve druhém. Musí vrátit pole s následujícími klíči (vše volitelné):

  • suffix: přípona webu (odpovídá $suffix paramater SiteConfiguration::get() a podobně)
  • jazyk: jazyk webu
  • tags: pole wiki tagů (odpovídající parametru $wikiTags)
  • params: pole parametrů, které mají být nahrazeny (odpovídající parametru $params)

Budou sloučeny s parametry předanými do SiteConfiguration::get() a podobnými funkcemi. Pokud jsou vyplněny suffix a lang, použijí se k přepsání výchozího chování $wgConf->siteFromDB().

Sloučení nastavení

Pole lze nyní sloučit. To může být užitečné pro $wgGroupPermissions. Chcete-li jej použít, musíte před klávesy přidat "+" pro nastavení, která chcete sloučit.

  • Chcete-li sloučit svou přizpůsobenou verzi nastavení s verzí v DefaultSettings.php, přidejte před název nastavení + (např. '+wgGroupPermissions')
  • Chcete-li sloučit specifičtější úroveň s méně konkrétní, přidejte před úroveň +.

Obě možnosti lze použít společně.

Sloučení probíhá v následujícím pořadí:

  1. Jméno databáze
  2. Značky (v pořadí poskytnutém metodě extrakce, která může být v tomto okamžiku velmi dobře náhodná)
  3. Přípona wiki
  4. Výchozí

Když je nalezen klíč, který nemá předponu "+", sloučení se ukončí.

Příklad s $wgGroupPermissions:

$wgConf->settings = [

# ...

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

    # Allow bureaucrats to change status on remote wikis
    # and allow anonymous users to create pages (this part
    # will not be merged with 'default' since there are no
    # "+" in front of 'centralwiki')
    'centralwiki' => [
        'bureaucrat' => [
            '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' => [
        'user' => [
            'rollback' => true,
        ],
    ],

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

# ...

];

Základní syntaxe je tedy:

$wgConf->settings = [
'wgConfigurationSetting' => [
    'default' => 'defaultvalue',
    'wikidatabasename1' => 'value that overrides default for this wiki',
],
# To merge the settings you set here with those in DefaultSettings.php:
'+wgConfigurationSetting' => [
# 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',
],
];

Příklad

Tento příklad používá 3 wiki: dewiki, enwiki a frwiki. Jsou umístěny na adrese http://localhost/$wgDBname/ (tj. http://localhost/dewiki/, http://localhost/enwiki/ a http://localhost/frwiki/).

Předpokládá, že $wgDBname je již definován.

V tomto příkladu je $wgConf->settings deklarován v InitialiseSettings.php , není to povinné a lze to provést v LocalSettings.php.

InitialiseSettings.php

<?php

$wgConf->settings = [

'wgServer' => [
    # If you want to allow the usage of https, use '//localhost'
    #  and set 'http://localhost' at 'wgCanonicalServer'
    'default' => 'http://localhost',
],

'wgCanonicalServer' => [
    'default' => 'http://localhost',
],

'wgScriptPath' => [
    'default' => '/$wiki',
],

'wgArticlePath' => [
    'default' => '/$wiki/index.php/$1',
],

'wgSitename' => [
    'default' => 'Wikipedia',
    'frwiki' => 'Wikipédia', # accent in French
],

'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 );

Konfigurace Wikimedie

Chcete-li vidět, jak Wikimedie používá $wgConf ke konfiguraci svých wiki, podívejte se na:

Související odkazy

Category:Global Objects variables/cs Category:MediaWiki configuration settings/cs Category:MediaWiki configuration settings introduced in version 1.5.0/cs Category:MediaWiki configuration settings still in use/cs