Manual:$wgConf
Objetos globais: $wgConf | |
---|---|
Crie um objeto de configuração de site. Não é muito utilizado na instalação predefinida. |
|
Introduzida na versão: | 1.5.0 (r9670) |
Removida na versão: | ainda em uso |
Valores permitidos: | Não especificados |
Valor por omissão: | novo objeto SiteConfiguration. |
Outras configurações: Lista Alfabética | Lista por Função |
Detalhes
Crie um objeto de configuração de site. Não é muito utilizado na instalação predefinida.
This is used on Wikimedia's mass installation to provide a centralized configuration file for a few hundred wikis, providing defaults per site group and per-wiki overrides.
It can be a bit confusing, though. :) Currently needed by Extensão:CentralAuth to fetch per-site information, eg linking to the proper user pages on each wiki.
Configuração
Wikis are grouped by the suffix on their database names; on a large installation there may be e.g. 'enwiki' and 'enwiktionary' and 'enwikibooks', each in a different suffix group. Suffixes have to be declared in the suffixes
member variable of $wgConf if you want to use $wgConf->siteFromDB()
.
$wgConf->settings
is the array of settings. Its format is $wgConf->settings['wgSettingName']['wiki']
.
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
For string settings, you can define parameters that will be replaced when extracting the settings.
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 e anteriores
Versão MediaWiki: | ≤ 1.13 |
When extracting global settings, the object will search first the more specific level (the first one in the list above) and if it doesn't find the setting, it will search in less specific levels.
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.
To extract the settings in global variables, you can use $wgConf->extractAllGlobals( $wiki, $suffix, $params, $wikiTags );
.
Parameters are:
$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
- (introduzido(a) na 1.12.0) array of wiki tags.
1.14 e mais recente
Versão MediaWiki: | ≥ 1.14 |
Algumas novas funcionalidades foram adicionadas na versão 1.14.0. Parte da versão 1.13 e anteriores ainda podem ser utilizadas.
Função de retorno (Callback)
Since 1.14, a callback has been introduced to be able to modify the parameters passed to SiteConfiguration::get()
and related function.
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 (corresponding to $suffix paramater ofSiteConfiguration::get()
and similar)lang
: site's langtags
: array of wiki tags (corresponding to $wikiTags parameter)params
: array of parameters to be replaced (corresponding to $params parameter)
They'll be merged with the parameters passed to SiteConfiguration::get()
and similar functions. If the suffix
and lang
are filled, the they'll be used to override the default behaviour of $wgConf->siteFromDB()
.
União de definições
Arrays can now be merged. This might be useful for $wgGroupPermissions
. To use it, you have to prefix the keys with a "+" for the settings you want to merge.
- 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.
Merging happens in the following order:
- Nome da base de dados
- Tags (in the order provided to the extraction method, which might very well be randomized at this point)
- Sufixo da Wiki
- Predefinição
When a key is encountered that is not prefixed with "+", the merging will end.
Example with $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,
],
],
],
# ...
];
The basic syntax is thus:
$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',
],
];
Exemplo
This example uses 3 wikis: dewiki
, enwiki
and frwiki
. They are located at http://localhost/$wgDBname/
(i.e. http://localhost/dewiki/
, http://localhost/enwiki/
and http://localhost/frwiki/
).
It assumes that $wgDBname
is already defined.
$wgConf->settings
is declared in InitialiseSettings.php , this is not required and can be done in 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
Para a versão 1.13 e anteriores
Versão 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, [] );
Para a versão 1.14 e mais recentes
Versão 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 );
Configuração da Wikimedia
Para ver como a Wikimedia utiliza $wgConf
para configurar as suas wikis, consulte:
- [$common-set CommonSettings.php] (Versão de LocalSettings.php da Wikimedia)
- [$init-set InitialiseSettings.php] (para as
$wgConf->definições
) - [$wgconf wgConf.php] (utilziado pelo ficheiro CommonSettings.php para inicializar $wgConf)
- CommonSettings.php (Wikimedia's version of
LocalSettings.php
) - InitialiseSettings.php (for
$wgConf->settings
)
Ver também
- The
includes/SiteConfiguration.php
file (or view it on GitHub), which gives a guide on how $wgConf works which might be easier to understand than this page.