Jump to content
MediaWiki

Extensão: Gadgets

From mediawiki.org
This page is a translated version of the page Extension:Gadgets and the translation is 100% complete.
Manual de extensões da MediaWiki
Gadgets
Estado de lançamento: estável
Implementação Minha Wiki , Página espacial , API
Descrição Permitir que os utilizadores ativem os gadgets baseados em JS, fornecidos pelo utilizador a partir da sua página de preferências
Autor(es) Daniel Kinzler (Duesentrieb discussão )
Política de compatibilidade Lançamentos de capturas de ecrã em conjunto com o MediaWiki. Original não é compatível com as versões anteriores.
MediaWiki 1.19+
Licença GNU - Licença Pública Geral 2.0 ou superior
Transferência
README
Exemplo Wikimédia Commons: Visão geral do gadget, preferências do utilizador (clique em "Gadgets"; tem de estar autenticado)
  • $wgGadgetsDefinitionsUseCodeEditor
  • $wgGadgetsRepo
  • $wgGadgetsDefinitionsUseCodeMirror
Traduza a extensão Gadgets se esta estiver disponível em translatewiki.net
Problemas Tarefas em aberto · Reportar um erro

A extensão Gadgets permite que os utilizadores selecionem gadgets baseados em JavaScript ou CSS fornecidos por outros utilizadores da wiki.

Os gadgets são compostos por JavaScript e/ou CSS snippets , localizados nas páginas no espaço nominal do MediaWiki. Cada gadget é definido por uma linha em MediaWiki:Gadgets-definition, fornecendo um nome e uma descrição para o gadget, e uma lista dos trechos de JS e CSS que ele usa (veja a seção #Utilização abaixo).

Como os gadgets são armazenados no namespace da MediaWiki (a lista que define os gadgets e, os fragmentos de código reais), apenas os sysops (administradores de interface) podem editar o código. Apenas usuários confiáveis ​​pela comunidade wiki devem ser capazes de editar o código JavaScript usado por outros usuários, pois o JavaScript pode ser facilmente usado para sequestrar contas ou espionar pessoas.

Instalação

This extension comes with MediaWiki 1.18 and later, so you do not need to download it. The remaining configuration instructions must still be followed.
  • Exporte e coloque o ficheiro, ou ficheiros, num diretório chamado Gadgets, na sua pasta extensions/.
    Developers and code contributors should install the extension from Git instead, using:
    cdextensions/
    gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/Gadgets
    
  • Acrescente o seguinte código ao fundo do ficheiro $LocalSettings:
    wfLoadExtension( 'Gadgets' );
    
  • Yes Pronto – Na página especial Special:Version da sua wiki verifique se a extensão foi instalada.

Configuração

$wgGadgetsRepo Se os gadgets devem ser definidos em MediaWiki:Gadgets-definition ou por meio de páginas como MediaWiki:Gadgets/seuNomedeGadget.json. Se for json, ele também criará o modelo de conteúdo GadgetDefinition. O modo "Json" está em desenvolvimento e ainda não está pronto para uso.
$wgSpecialGadgetUsageActiveUsers Configura se as estatísticas do usuário ativo em Special:GadgetUsage devem ou não ser mostradas. true

Utilização

Seleção de alguns gadgets nas preferências do usuário na wikipedia holandesa (de.wikipedia)

Uma vez que MediaWiki:Gadgets-definition é criado com pelo menos um gadget válido, uma nova seção "Gadgets" será mostrada em Special:Preferences para todos os usuários. Os utilizadores podem ativar os aparelhos que desejam usar lá. Uma visão geral dos gadgets atualmente definidos por MediaWiki:Gadgets-definition também é feita em Special:Gadgets , juntamente com links úteis para as páginas de localização e script/estilo relevantes para fácil criação ou edição. As estatísticas sobre as preferências dos gadgets estão disponíveis a Special:GadgetUsage .

Formato de definição

Cada linha na página MediaWiki:Gadgets-definition deveria começar com um caráter "*" (asterisco) para definir um gadget. A linha tem o seguinte formato:

* mygadget [opções] | nomes de página

O primeiro campo ("mygadget" no exemplo) é o nome interno do gadget. O rótulo da página de preferências vem de uma página de mensagem da interface (MediaWiki:Gadget-mygadget) onde o nome próprio e uma breve descrição podem ser escritos, o que também permite que a marcação wikitexto seja usada

O nome interno deve começar com uma letra latina básica ([A-Za-z]) e pode ser seguido por qualquer número de letras, dígitos ([0-9]), hífens (-), sublinhados (_) e pontos (.). A razão para esta limitação é que o nome interno deve ser válido como o nome de um nome de formulário HTML, como a chave de mensagem da interface MediaWiki, e como o nome do módulo ResourceLoader ResourceLoader .

Opções de formatos:

[ResourceLoader | opção 1 | opção 2 | ... opção N]

O sinalizador de ResourceLoader é necessário, a menos que o gadget contenha apenas estilos. As opções que são "sinalizadores" só precisam ter o seu nome escrito para serem ativadas. As opções que necessitam de um valor são seguidas por um sinal de iguais e uma lista de valores separada por vírgula. Todos os espaços brancos são opcionais e podem ser omitidos.

[ResourceLoader | myflag | mykey = value1, value2, value3 ]

Exemplos:

* mygadget[ResourceLoader]|mygadget.js|mygadget.css

ou

* mygadget[ResourceLoader|package]| mygadget.js | mygadget-Foo.js | mygadget-data.json | mygadget-template.vue | mygadget.css

ou

* mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css


Utilizar o Espaço Nominal da Definição do Gadget

Versão MediaWiki:
≤ 1.41

Há duas maneiras de definir os gadgets dependendo do $wgGadgetsRepoClass. Se É 'MediaWikiGadgetsDefinitionRepo' (o valor padrão), a lista de gadgets disponíveis é definida em MediaWiki:Gadgets-definition. De uma forma alternativa, as definições de gadget são definidas em páginas no namespace Definição de gadget quando $wgGadgetsRepoClass é definido como 'GadgetDefinitionNamespaceRepo'. (Em MediaWiki 1.39+, o valor que se utiliza em seu lugar é '\\MediaWiki\\Extension\\Gadgets\\GadgetDefinitionNamespaceRepo'.)

A migração das definições de gadget existentes ainda não é suportada, por isso você perderá os gadgets definidos anteriormente após mudar esta opção.

Crie a página Gadget definition:mygadget e coloque nela o código JSON abaixo, este tem o mesmo resultado que mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css

{
"settings":{
"rights":["foo","bar"],
"default":false,
"package":false,
"hidden":false,
"skins":[],
"actions":[],
"category":""
},
"module":{
"scripts":["mygadget.js"],
"styles":["mygadget.css"],
"datas":[],
"peers":[],
"dependencies":[],
"codexIcons":[],
"messages":[],
"type":""
}
}

No exemplo acima são usados os códigos Gadget:Mygadget.js e o Gadget:mygadget.css .

Opções

Opções
Nome Parâmetros Descrição Desde
ResourceLoader Nenhuma Transforma os scripts do gadget compatíveis com ResourceLoader . 1.17 (r76527)
dependencies Nomes de módulos separados por vírgula Estes módulos serão carregados antes de os scripts deste gadget executar. Veja a lista de modulos padrões. 1.17 (r76639)
rights Nome de privilégios separados por vírgula Disponibilize o gadget (para aparecer nas preferências) apenas para usuários que tenham os privilégios especificos. 1.18 (r85268)
hidden Nenhuma Oculte o gadget da página de preferencias Isto pode ser utilizado de duas formas:
  • Ativar um gadget por padrão sem a capacidade de desativar (como alternativa modular a Common.js). Observe que você precisa adicionar ambos: hidden | default para carregar um módulo para todos os usuários.
  • Gadgets que não são destinados aos utilizadores finais, mas sim para serem carregados por outros gadgets. Por exemplo, para permitir que dois gadgets reutilizem o mesmo código interno ou para registrar a parte "principal" de um gadget que carrega apenas em determinadas páginas.
1.28
skins Nome do visual (skin) separados por vírgula Disponibilize o gadget (para aparecer nas preferências) apenas para usuários que tenham os privilégios especificos. Antes da MediaWiki 1.32 estava levando em consideração a pele definida nas preferências para o usuário, não a atual exibida (como quando adicionamos ?useskin=monobook no URL, T199478). Desde [a versão] 1.39, o módulo ResourceLoader não é registrado em skins nas quais o gadget não está disponível, portanto, o gadget não pode ser carregado nessas skins como uma dependência ou usando mw.loader.load() (T236603).
A utilização de skins é um último recurso, e deveria ser restrito para código especializado. Por exemplo, código que se baseia na manipulação do DOM em ausência de API padronizadas e que não se pode implementar utilizando Módulos centrais.
1.19 (r100509)
actions Nomes de ações separados por vírgula Faça o gadget disponível apenas nas ações especificadas na página. Por exemplo, actions = edit, history dólar para carregar um gadget apenas durante a edição e nas páginas de história.
Especificar a ação edit também irá carregá-la em action=submit. Ações inválidas desativam o gadget, já que não pode ser executado em nenhum lugar.
1.38 (gerrit:747112)
categories Nomes de categorias separadas-por-vírgula Disponibilize o gadget somente nas categorias especificadas. P. ex., categories = Archived, Maintenance para carregar um gadget apenas nas páginas Category:Archived ou Category:Maintenance do wiki. Consulte também: Template gadgets 1.42 (gerrit:1005092)
namespaces Números do espaço nominal separados por vírgula Disponibilize o gadget apenas nos espaços nominais especificados. Por exemplo, namespaces = 0, 2 para carregar um gadget apenas no espaço principal e espaço nominal do utilizador. 1.41 (gerrit:624517)
contentModels Modelos de conteúdo separados por vírgula Faça o gadget disponível nas páginas com os modelos de conteúdo indicados. Por exemplo, 1 dólar para carregar um gadget apenas nas páginas de texto do wiki. 1.41 (gerrit:922062)
default Nenhuma Ativar o gadget por padrão para todos (incluindo IPs). Os utilizadores registados podem ainda desativar-o nas suas preferências. 1.18 (r85902)
package Nenhuma Marcar este gadget como packaged. Neste modo, apenas a primeira página JavaScript será executada. Outras páginas podem ser importadas usando a função require() . Este modo também permite o uso de páginas JSON, que não podem ser incluídas de outra forma. 1.38
type styles (default para gadgets apenas CSS) ou general (defaults de outra forma) Use styles para módulos que apenas modificam o estilo para elementos já na página (por exemplo, ao personalizar a pele, o layout ou o conteúdo do artigo). Isso fará com que os arquivos CSS do módulo sejam incluídos na página HTML em vez de ser carregados através do JavaScript. Para + info, leia ResourceLoader/Migration guide (users)#Gadget type.
Usar styles não será carregado em nenhum arquivo JavaScript especificado. Para gadgets que modificam o estilo de elementos por meio de JavaScript e CSS, são necessárias duas definições de gadget individuais.
1.28
peers Nome de aparelhos separados por vírgula Estes gadgets só com CSS serão carregados juntamente com este gadget. Estes gadgets serão carregados antes de dependencies, e seus estilos serão aplicados mesmo se o JavaScript for desativado. Para + info, leia ResourceLoader/Migration guide (users)#Gadget type. 1.29
codexIcons Comma-separated codex icon names Esses ícones do Códex serão carregados com este gadget, veja Lista de todos os ícones. Eles estarão disponíveis em um arquivo de icons.json gerado no pacote. 1.45 (gerrit:1108823)
supportsUrlLoad Nenhuma | true | false Faça o gadget disponível para ser carregado com o parâmetro de consulta de URL de ?withgadget. 1.38
Opções removidas
Nome Parâmetros Descrição Desde Removidas
top Nenhuma Faça que o gadget seja carregado primeiro Isto deve ser usado com pouca atenção, mas pode ser necessário para algumas coisas de inicialização como registrar plugins com VisualEditor. 1.22 (gerrit:75506) 1.29
requiresES6 Nenhuma Permitir no gadget o uso da sintaxe ES6 (ECMAScript versão 6 ou ES2015). Ativar isto significa que a validação da sintaxe do lado do servidor é ignorada para o gadget. Qualquer dispositivo que requer o ES6 é carregado em uma única solicitação web, o que isola as falhas devido a sintaxe inválida ou não suportada apenas para esses dispositivos, sem afetar outros dispositivos e recursos do software da MediaWiki. Recomenda-se utilizar uma ferramenta como a ESLint para garantir que apenas se use a sintaxe válida ES6. Conflitos com default. 1.40 (gerrit:758086) 1.42
targets desktop, mobile ou desktop, mobile (por padrão) Defina o(s) alvo(s) de 1$ para o gadget.
Não use targets, em vez disso use skins quando absolutamente necessário.
1.21 (gerrit:60954) 1.42

Pode especificar dependências adicionais para os seus aparelhos, por exemplo:

* mygadget[ResourceLoader|dependencies=jquery.ui, jquery.effects.clip]|mygadget.js|mygadget.css

Aqui, pedimos ao ResourceLoader para carregar os módulos jquery.ui e jquery.effects.clip com mygadget. Observe que os gadgets não podem depender de scripts de páginas, arquivos estáticos ou URLs externas, apenas de módulos já registrados no ResourceLoader. Para fazer um script de uma página depender de outro script de uma pagina, cada um deve ser um gadget que se registre como um módulo no ResourceLoader, então eles podem ser feitos para ter dependências usando a seguinte sintaxe:

* childgadget[ResourceLoader|dependencies=ext.gadget.parentgadget]|childgadget.js

Para ativar um gadget por predefinição, utilize "default":

* mygadget[ResourceLoader|default|dependencies=mediawiki.util]|mygadget.js|mygadget.css

Para tornar o gadget disponível apenas para os utilizadores com permissões adequadas, defina a opção rights, por exemplo:

* ImprovedDeletion [rights=delete] | ImprovedDeletion.js

Faz o gadget disponível apenas para os usuários que podem realmente excluir páginas.

Observe que as restrições são baseadas em permissões, e não feita em grupos de usuários como administradores ou burocratas. Aqui estão alguns exemplos reais:

* modrollback [ResourceLoader |rights=rollback] |modrollback.js
* geonotice [ResourceLoader |default |rights=viewmywatchlist] |geonotice.js
* Ajax_sysop [ResourceLoader |rights=patrol, rollback, markbotedits, delete]|Ajax_sysop.js


Nomes de página

Os campos restantes na linha da definição referem-se às páginas fonte de JavaScript, CSS, JSON (desde 1.38) e Vue.js (desde 1.45) que compõem o módulo gadget. Elas são armazenadas no namespace MediaWiki como mensagens de interface (MediaWiki:Gadget-mygadget.js e MediaWiki:Gadget-mygadget.css no exemplo). Os nomes de página devem terminar com .css, .js, .json, .vue respetivamente.

Um gadget pode usar qualquer número de páginas de origem, por exemplo:

 * frobinator[ResourceLoader]|frob.js|frob.css|pretty.css
 * l33t[ResourceLoader]|l33t.js
 * foobar[ResourceLoader|package]|foo.js|bar.js|foobar-data.json
 * foo[ResourceLoader|package|dependencies=vue,@wikimedia/codex]|codextest.js|codextest-main.vue|codextest-ChangeNameDialog.vue


Por favor, note que se o seu código contém cordas que podem ser interpretadas como sintaxe wiki (por exemplo, o código de assinatura ~~~~), você pode querer enclosar o seu código em ‎<nowiki>...‎</nowiki> e colocar essas tags em comentários JavaScript ou CSS para que não sejam interpretadas quando realmente usadas.

Veja a 12a e última linha de MediaWiki:Gadget-formWizard-core.js para um exemplo.

Secções

A lista de gadgets em MediaWiki:Gadgets-definition pode ser dividida em seções usando linhas que começam e terminam com dois ou mais caracteres "=" (igual), acompanhando o nome de uma mensagem do sistema que define o nome da seção, por exemplo:

 == interface-gadgets ==
 ...
 == editing-gadgets ==
 ...

Isto deveria definir duas novas secções, com os títulos definidos nas páginas MediaWiki:Gadget-section-interface-gadgets e MediaWiki:Gadget-section-editing-gadgets.

Gadgets populares

Veja meta:Gadgets para os gadgets mais populares nas comunidades da Wikimédia.

Consultar também

Este extensão está a ser utilizado em um ou mais projetos da Wikimedia. Isso provavelmente significa que a extensão é estável e funciona bem o suficiente para ser usada por esses sites de alto tráfego. Procure o nome desta extensão nos arquivos de configuração CommonSettings.php e InitialiseSettings.php da Wikimedia para ver onde está instalado. Uma lista completa das extensões instaladas em um determinado wiki pode ser vista na página Special:Version do wiki.
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm.

AltStyle によって変換されたページ (->オリジナル) /