Manuel:$wgConf
Objets globaux: $wgConf | |
---|---|
Crée un objet de configuration de site. Non utilisé pour la plupart des cas dans une installation par défaut. |
|
Introduit dans la version : | 1.5.0 (r9670) |
Retiré dans la version : | Encore utilisé |
Valeurs autorisées : | Non renseigné |
Valeur par défaut : | nouvel objet SiteConfiguration. |
Autres paramètres : Alphabétique | Par fonction |
Détails
Crée un objet de configuration de site. Non utilisé pour la plus grande partie dans une installation par défaut.
Ce paramètre est utilisé dans une installation de masse de Wikimedia pour fournir un fichier de configuration centralisé pour une centaine de wikis, fournissant des valeurs par défaut par groupe de sites et des écrasements par wiki.
Cela peut sembler un peu déroutant, toutefois. :) Actuellement, il est nécessaire pour Extension:CentralAuth pour parcourir les informations par site, par ex. lier les bonnes pages utilisateur sur chaque wiki.
Configuration
Les wikis sont groupés par le suffixe de leurs noms de base de données; sur une grande installation, il peut par exemple y avoir 'enwiki' et 'enwiktionary' et 'enwikibooks', chacun dans un groupe de suffixe différent. Les suffixes doivent être déclarés dans la variable de membre suffixes
de $wgConf si vous voulez utiliser $wgConf->siteFromDB()
.
$wgConf->settings
est le tableau de sparamètres. Son format est $wgConf->settings['wgSettingName']['wiki']
.
Les paramètres peuvent être assignés à (du plus spécifique au moins spécifique, c'est la partie $wgConf->settings
mentionné ci-dessus):
- un nom de base de données spécifique
- une balise wiki (depuis 1.12.0)
- un suffixe (par ex. 'wiki' ou 'wiktionary') pour affecter tous ceux qui sont dans ce groupe de suffixe (peut être déterminé avec
$wgConf->siteFromDB()
) - 'default' pour affecter tous les wikis
Pour les paramètres chaîne, vous pouvez définir des paramètres qui seront remplacés lors de l'extraction des paramètres.
Cela peut être utile quand le paramètre a le même format pour tous les wikis.
Le format est $nom
.
Faites attention d'utiliser des apostrophes simples ('
) ou d'échapper le $
(\$
) sinon il sera remplacé par la variable PHP (qui peut ne pas être définie à ce moment-là).
MW 1.13 et précédents
Version de MediaWiki : | ≤ 1.13 |
Lors de l'extraction des paramètres globaux, l'objet sera d'abord recherché au niveau le plus spécifique (le premier dans la liste ci-dessus) et, s'il n'est pas trouvé, il sera cherché dans les niveaux moins spécifiques.
Quand il est trouvé, il n'est pas cherché dans de moins spécifiques.
Cela veut dire que vous devez faire attention à certains paramètres spécifiques, comme $wgGroupPermissions
, car s'ils ne correspondent pas au paramètre de niveaux moins spécifiques, ni à la valeur par défaut (celle dans DefaultSettings.php), vous deverz le faire par vous-mêmes.
Pour extraire les paramètres dans les variables globales, vous pouvez utiliser $wgConf->extractAllGlobals( $wiki, $suffix, $params, $wikiTags );
.
Les paramètres sont:
$wiki
- Nom de base de données du wiki (en général$wgDBname
). Vous devez le définir par vous-mêmes.$suffix
- Suffixe du wiki, utilisé pour obtenir le niveau de suffixe.$params
- tableau de paramètres faisant correspondre son nom à sa valeur.$wikiTags
- (introduit dans 1.12.0) tableau de balises wiki.
MW 1.14 et suivants
Version de MediaWiki : | ≥ 1.14 |
Certaines fonctionnalités nouvelles ont été ajoutées en 1.14.0. La partie 1.13 et précédents peut toutefois toujours être utilisée.
Fonction de rappel
Depuis 1.14, un callback [1] a été introduit pour pouvoir modifier les paramètres passés à SiteConfiguration::get()
et la fonction associée.
Il peut être utilisé pour modifier les paramètres lorsque de telles fonctions sont appelées après LocalSettings.php
(c’est le cas avec CentralAuth).
Vous pouvez le définir en $wgConf->siteParamsCallback
.
La fonction callback recevra l’objet SiteConfiguration dans le premier argument et le nom wiki dans le second.
Il doit renvoyer un tableau avec les clés suivantes (toutes optionnelles):
suffix
: suffixe du site (correspondant à $suffix paramater deSiteConfiguration::get()
et similaire)lang
: langue du sitetags
: tableau des tags wiki (correspondant au paramètre $wikiTags)params
: tableau de paramètres à remplacer (correspondant au paramètre $params)
Ils seront fusionnés avec les paramètres passés à SiteConfiguration::get()
et des fonctions similaires. Si le suffix
et le lang
sont remplis, ils seront utilisés pour remplacer le comportement par défaut de $wgConf->siteFromDB()
.
Fusion des paramètres
Les tableaux peuvent maintenant être fusionnés. Cela peut être utile pour $wgGroupPermissions
. Pour l’utiliser, vous devez préfixer les touches avec un "+" pour les paramètres que vous voulez fusionner.
- Pour fusionner votre version personnalisée du paramètre avec celle de DefaultSettings.php, préfixez le nom du paramètre avec "+" (tel que
'+wgGroupPermissions'
) - Pour fusionner un niveau plus spécifique avec un niveau moins spécifique, préfixez le niveau avec un "+".
Les deux possibilités peuvent être utilisées ensemble.
La fusion se fait dans l’ordre suivant:
- nom de la base de données
- Étiquettes (dans l’ordre fourni à la méthode d’extraction, qui pourrait très bien être randomisée à ce stade)
- Suffixe wiki
- Défaut
Lorsqu’une clé non préfixée par "+" est rencontrée, la fusion prend fin.
Exemple avec $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,
],
],
],
# ...
];
La syntaxe de base est donc:
$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',
],
];
Exemple
Cet exemple utilise 3 wikis : dewiki
, dewiki
et frwiki
. Ils se trouvent à http://localhost/$wgDBname/
(i.e. http://localhost/dewiki/
, http://localhost/enwiki/
et http://localhost/frwiki/
).
Il suppose que $wgDBname
est déjà défini.
$wgConf->settings
est déclaré en InitialiseSettings.php , ce n’est pas nécessaire et peut être fait en 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
MW 1.13 et précédents
Version de 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, [] );
MW1.14 et suivants
Version de 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 );
Configuration de Wikimedia
Pour voir comment Wikimedia utilise le code>$wgConf/code> pour configurer ses wikis, voir:
- CommonSettings.php (Version de Wikimedia de
LocalSettings.php
) - InitialiseSettings.php (pour
$wgConf->settings
)
Voir aussi
- Le fichier
includes/SiteConfiguration.php
(ou view it on GitHub), qui donne un guide sur le fonctionnement de $wgConf qui pourrait être plus facile à comprendre que cette page.