Open main menu
This page is a translated version of the page Manual:$wgConf and the translation is 40% complete.

Outdated translations are marked like this.
Other languages:
English • ‎español • ‎français • ‎magyar • ‎polski • ‎português do Brasil • ‎中文 • ‎日本語 • ‎한국어
Objets globaux: $wgConf
Crée un objet de configuration de site. Non utilisé pour la plus grande partie 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 SiteConfiguration].

Contents

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 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 $name. 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à).

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: (depuis 1.12.0) tableau de balises wiki.

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

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 of SiteConfiguration::get() and similar)
  • lang: site's lang
  • tags: 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().

Settings merging

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:

  1. Database name
  2. Tags (in the order provided to the extraction method, which might very well be randomized at this point)
  3. Wiki suffix
  4. Default

When a key is encountered that is not prefixed with "+", the merging will end.

Example with $wgGroupPermissions :

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

// ...

);

The basic syntax is thus:

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

Exemple

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.

In this example, $wgConf->settings is declared in InitialiseSettings.php, this is not required and can be done in LocalSettings.php.

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

for 1.13 and earlier

Version de MediaWiki : 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() );

for 1.14 and newer

Version de MediaWiki : 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 );

Wikimedia configuration

To see how Wikimedia uses $wgConf to configure its wikis see:

See also

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