Kézikönyv:$wgConf
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 |
Egyéb beállítások: Betűrendben | Funkció szerint |
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
- 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 (aSiteConfiguration::get()
és hasonlók $suffix paraméterével összhangban)lang
: az oldal nyelvetags
: 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:
- Adatbázisnév
- Címkék (a kibontási metódus által meghatározott módon, amely ezen a ponton véletlenszerű lehet)
- Wiki-előtag
- 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 = [
# ...
# '+' 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,
],
],
],
# ...
];
Az alapértelmezett szintaxis a következő:
$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é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.
$wgConf->settings
-et az InitialiseSettings.php tartalmazza; ez nem kötelező, a definiálás a LocalSettings.php
-ben is lehetséges.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
1.13 és korábbi verziók esetében
MediaWiki-verzió: | ≤ 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, [] );
1.14 és újabb verziók esetében
MediaWiki-verzió: | ≥ 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 );
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).
- CommonSettings.php (Wikimedia's version of
LocalSettings.php
) - InitialiseSettings.php (for
$wgConf->settings
)
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