Kézikönyv:$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 51% complete.
Outdated translations are marked like this.
Global Objects: $wgConf
Új oldalkonfigurációs objektumot hoz létre. Alapértelmezésben nincs rá sok szükség.
Bevezetve:1.5.0 (r9670)
Eltávolítva:használatban
Megengedett értékek:nincs megadva
Alapértelmezett érték:új SiteConfiguration-objektum

Részletek

A változó egy oldalkonfigurációs változót hoz létre; erre alapértelmezésben nincs sok szükség.

A beállítás a tömeges telepítéskor használva, amikor több száz wikinek kell egyetlen konfigurációs állományt létrehozni, illetve ekkor csoportonkénti alapértelmezéseket lehet létrehozni, amelyek wikinként felülírhatóak.

A beállítás mibenléte nem feltétlenül egyértelmű. :) Jelenleg a Extension:CentralAuth van rá szüksége az oldalankénti információk (például az egyes felhasználói lapok hivatkozásainak) összegyűjtésére.

Konfiguráció

A wikik csoportosítása az adatbázisbéli nevük előtagja alapján történik; nagyobb telepítéseknél például „huwiki”, „huwiktionary” és „huwikibooks”; ezek mindegyike külön előtag-csoportot alkot. Az előtagokat a $wgConf suffixes alváltozójában kell definiálni, ha a $wgConf->siteFromDB() formát használnád.

A $wgConf->settings a beállítások tömbje, kitöltése a $wgConf->settings['wgSettingName']['wiki'] formában történik.
A következőket kell konfigurálni a fent említett $wgConf->settings változó „wiki” részében:

  • adatbázis neve
  • wikicímke (az 1.12.0 óta)
  • előtag (például „wiki” vagy „wiktionary”), amely a csoport minden tagjára vonatkozik (meghatározható a $wgConf->siteFromDB() formával)
  • 'default', ha minden wikire vonatkozik.

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

A sztringek esetén a beállítások során behelyettesítendő paramétereket adhatsz meg; ez akkor hasznos, ha a konfigurációs érték formája minden wikin megegyezik. Ez alapértelmezésben $name; figyelj arra, hogy használj aposztrófokat ('), illetve emeld ki a $ jelet (\$), különben értéke a PHP nem definiált változójával lesz felülírva. 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 és korábbi verziók

MediaWiki-verzió:
1.13

A globális beállítások kibontásakor az objektum először a leginkább specifikált szinten (a fenti listában az első) fog keresni; ha itt nem találja a konfigurációs értéket, akkor folyamatosan továbbhalad; ha megtalálta, akkor megáll. Figyelj egyes specifikus változók (például $GroupPermissions) helyes beállítására, mivel sem a kevésbé specifikus szintek, sem az alapértelmezett érték (a DefaultSettings.php-ban található) nem lesznek összefésülve, ezt neked kell megtenni. 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.

A globális változók beállításainak kibontásához a $wgConf->extractAllGlobals( $wiki, $suffix, $params, $wikiTags ); forma használható.

Ennek paraméterei:

  • $wiki: a wiki adatbázisának neve (általában $DBname); neked kell megadnod
  • $suffix: a wiki előtagja, az előtag szintjének meghatározására
  • $params: értékekhez rendelt paraméterek neveinek tömbje
  • $wikiTags: wikicímkék tömbje (az 1.1.2.0 verzió óta)
  • $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 - (bevezetve: 1.12.0) array of wiki tags.

1.14 és újabb verziók

MediaWiki-verzió:
1.14

Az 1.14.0 verzióban néhány új funkciót adtunk hozzá, azonban a korábbiak is használhatóak.

Visszahívás

Az 1.14 verzióban egy visszahívási funkciót vezettünk be, amellyel a SiteConfiguration::get() és a kapcsolódó funkcióknak átadott paraméterek módosíthatóak. Ez hasznos lehet a paraméterek módosításakor, ha ezen funkciók a LocalSettings.php-ban meghívásra kerülnek (mint például a CentralAuth esetében). A működés a $wgConf->siteParamsCallback-ben konfigurálható. A visszahívási funkció első argumentuma a SiteConfiguration-objektum, a második pedig a wiki neve. Visszatérési értéke a következő kulcsokat tartalmazza (mindegyik opcionális): 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: az oldal előtagja (a SiteConfiguration::get() és hasonlók $suffix paraméterével összhangban)
  • lang: az oldal nyelve
  • tags: wikicímkék tömbje (a $wikiTags paraméterrel összhangban)
  • params: cserélendő paraméterek tömbje (a $params paraméterrel összhangban).

Ezen kulcsok össze lesznek vonva a SiteConfiguration::get()-nek átadott paraméterekkel. Ha a suffix és lang paraméterek ki vannak töltve, akkor tartalmuk a $wgConf->siteFromDB()-ben rögzített alapértelmezett viselkedést felülírja.

Beállítások összefésülése

Lehetséges a tömbök összefésülése, amely a $wgGroupPermissions -szal való használatkor lehet hasznos. Az összefűzendő paraméterek közé ehhez egy +-jelet kell tenned.

  • A testre szabott, illetve a DefaultSettings.php-ban található beállítások összefésüléséhez a változó elé +-jelet kell tenned (például '+wgGroupPermissions')
  • Különböző specifikációs szintű beállítások összefésüléséhez a szint elé kell + jelet tenned.

A két előfordulás ezután együtt használható.

  • 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.

Az összefűzés a következő sorrendben történik:

  1. Adatbázisnév
  2. Címkék (a kibontási metódus által meghatározott módon, amely ezen a ponton véletlenszerű lehet)
  3. Wiki-előtag
  4. Alapértelmezés

Ha egy kulcs előtt nem szerepel a +-jel, az összefésűlés véget ér.

Példa a $wgGroupPermissions -ra:

$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,
        ),
    ),
),

// ...

);

Az alapértelmezett szintaxis a következő:

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

Példa

Az alábbi példában három wiki szerepel: dewiki, enwiki és frwiki. Ezek helye: http://localhost/$wgDBname/ (pl.: http://localhost/dewiki/, http://localhost/enwiki/ and http://localhost/frwiki/).

Feltételezzük, hogy a $wgDBname már ki van töltve.

A példában a $wgConf->settings-et az InitialiseSettings.php tartalmazza; ez nem kötelező, a definiálás a LocalSettings.php-ban is lehetséges.

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 és korábbi verziók esetében

MediaWiki-verzió:
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 és újabb verziók esetében

MediaWiki-verzió:
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 );

Wikimédia-konfiguráció

Ha érdekel, hogy a Wikimédia-wikik hogy használszák a $wgConf-ot, lásd a következőket:

  • [$common-set CommonSettings.php] (a LocalSettings.php Wikimédia-verziója)
  • [$init-set InitialiseSettings.php] (a $wgConf->settings-hez)
  • [$wgconf wgConf.php] (A CommonSettings.php használja a $wgConf inicializálásához).

Lásd még

  • includes/SiteConfiguration.php állomány (vagy lásd GitHubon) – a $wgConf működését és ezen lap megértését segítő információkat tartalmaz