Jump to content

Příručka:$wgConf

From mediawiki.org
This page is a translated version of the page Manual:$wgConf and the translation is 100% complete.
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.

Může to být ale trochu matoucí. :) 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).

1.13 a starší

Verze MediaWiki:
1.13

Při extrahování globálních nastavení bude objekt hledat nejprve konkrétnější úroveň (první v seznamu výše) a pokud nastavení nenajde, bude hledat v méně konkrétních úrovních. Když to najde, pokud nebude hledat méně konkrétní. To znamená, že musíte věnovat pozornost některým specifickým nastavením, jako je $wgGroupPermissions , protože neslučuje nastavení s méně specifickými úrovněmi, ani výchozí hodnotu (ta v DefaultSettings.php), kterou budete muset vytvořit sami.

Chcete-li extrahovat nastavení v globálních proměnných, můžete použít $wgConf->extractAllGlobals( $wiki, $suffix, $params, $wikiTags );.

Parametry jsou:

  • $wiki - Název databáze Wiki (obecně $wgDBname ). Musíte si jej definovat sami.
  • $suffix - Přípona Wiki, používaná k získání úrovně přípony.
  • $params - Pole parametrů mapujících jeho název na jeho hodnotu.
  • $wikiTags - (zavedeno od 1.12.0) Pole wiki tagů.

1.14 a novější

Verze MediaWiki:
1.14

Ve verzi 1.14.0 byly přidány některé nové funkce. Část 1.13 a starší však může být stále používána.

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 upravenou verzi nastavení s tou v DefaultSettings.php, přidejte před název nastavení "+" (například '+wgGroupPermissions')
  • Chcete-li sloučit specifičtější úroveň s méně specifickou, 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 page (this part
    #  will not be merged with 'default' since there's 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 also usage of https, just 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

pro 1.13 a starší

Verze MediaWiki:
1.13
$wgLocalDatabases = [
    'dewiki',
    'enwiki',
    'frwiki',
];

$wgConf->wikis = $wgLocalDatabases;
$wgConf->suffixes = [ 'wiki' ];
$wgConf->localVHosts = [ 'localhost' ];

require_once "$IP/InitialiseSettings.php";

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

pro 1.14 a novější

Verze MediaWiki:
1.14
$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