Manual:$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 69% complete.
Outdated translations are marked like this.
Other languages:
English • ‎español • ‎français • ‎magyar • ‎polski • ‎português do Brasil • ‎中文 • ‎日本語 • ‎한국어
Objetos globais: $wgConf
Cria um objeto de configuração do site. Não é muito usado em uma instalação padrão.
Introduzido na versão:1.5.0 (r9670)
Removido na versão:ainda em uso
Valores permitidos:Indefinido
Valor padrão:novo objeto [SiteConfiguration SiteConfiguration].

Detalhes

Cria um objeto de configuração do site. Não é muito usado em uma instalação padrão.

Isto é usado na instalação em massa do Wikimedia para fornecer um arquivo de configuração centralizada para algumas centenas de wikis, fornecendo padrões por grupo de sites e substituições por wiki.

Pode ser um pouco confuso, no entanto. :) Atualmente necessário pela extensão CentralAuth para buscar informações por site, por exemplo, links para as páginas de usuário apropriados em cada wiki.

Configuração

Wikis são agrupadas pelo sufixo em seus nomes do banco de dados; em uma grande instalação pode ser, por exemplo, 'ptwiki' e 'ptwiktionary' e 'ptwikibooks', cada um em um grupo de sufixo diferente. Sufixos precisam ser declarados na suffixes variável-membro de $wgConf se você quiser usar $wgConf->siteFromDB().

$wgConf->settings é o array de configurações. Seu formato é $wgConf->settings['wgSettingName']['wiki'].
As definições podem ser atribuídas (do mais específico para o menos específico, esta é a parte 'wiki' de $wgConf->settings conforme mencionado acima):

  • um nome de banco de dados específico.
  • uma wiki tag (desde aversão 1.12.0)
  • um sufixo (p.ex. 'wiki' or 'wiktionary') para afetar todos nesse grupo de sufixos (pode ser determinado com $wgConf->siteFromDB())
  • 'default' para afetar todas as wikis

Para as configurações de strings, você pode definir parâmetros que serão substituídos ao extrair as definições. Pode ser útil quando o ajuste tem o mesmo formato para todas as wikis. O formato é $name. Tenha cuidado ao usar aspas simples (') ou tirar o $ (\$) ou ela será substituída pela variável PHP (que não pode ser definida no momento).

Versão 1.13 e anteriores

Versão do 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: (since 1.12.0) array of wiki tags.

Versão 1.14 e mais recentes

Versão do MediaWiki: 1.14

Alguns novos recursos foram adicionados na versão 1.14.0. A versão 1.13 e anteriores ainda podem ser usadas​​, no entanto.

Função de retorno

Desde a versão 1.14, uma chamada de retorno foi introduzida para poder modificar os parâmetros passados ​​para SiteConfiguration::get() e funções relacionadas. Ele pode ser usado para alterar os parâmetros quando essas funções são chamadas após o arquivo LocalSettings.php (este é o caso com CentralAuth). Você pode defini-lo em $wgConf->siteParamsCallback. A função de retorno de chamada tht-e receberá o objeto SiteConfiguration no primeiro argumento e o nome da wiki no segundo. Ela tem que retornar um array com as seguintes chaves (todas opcionais):

  • suffix: sufixo do site (correspondente ao parâmetro $suffix de SiteConfiguration::get() e similar)
  • lang: idioma do site
  • tags: array de tags wiki (correspondente ao parâmetro $wikiTags)
  • params: array de parâmetros a serem substituídos (correspondente ao parâmetro $params)

Eles vão ser mesclados com os parâmetros passados ​​para SiteConfiguration::get() e funções similares. Se suffix e lang estão preenchidos, eles podem ser usados ​​para substituir o comportamento padrão de $wgConf->siteFromDB().

Fusão de definições

Arrays podem agora ser mesclados. Isso pode ser útil para o $wgGroupPermissions . Para usá-lo, você tem que anteceder as teclas com um sinal de mais "+" para as definições que deseja mesclar.

  • Para mesclar sua versão personalizada da definição com a do DefaultSettings.php, prefixar o nome da definição com "+" (tal como '+wgGroupPermissions')
  • Para mesclar um nível mais específico com um menos específico, prefixar o nível com um "+".

As duas possibilidades podem ser utilizadas em conjunto.

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.

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

// ...

);

A sintaxe básica é da seguinte forma:

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

Exemplo

Este exemplo usa 3 wikis: dewiki, enwiki e frwiki. Elas estão localizadas em http://localhost/$wgDBname/ (ou seja, http://localhost/dewiki/, http://localhost/enwiki/ and http://localhost/frwiki/).

Ele assume que $wgDBname já está definido.

Neste exemplo, $wgConf->settings é declarado em InitialiseSettings.php, isto não é necessário e pode ser feito em 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

para versão 1.13 e anteriores

Versão do 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() );

para versão 1.14 e mais recentes

Versão do 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 );

Configuração da Wikimedia

Para ver como a Wikimedia usa $wgConf para configurar suas wikis consulte:

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.