Extension:Gadgets/pt
Gadgets Estado de lançamento: estável |
|
---|---|
Implementação | Minha Wiki , Página espacial , API |
Descrição | Permite aos usuários ativarem nas preferências gadgets de outros usuário baseados em JavaScript |
Autor(es) | Daniel Kinzler (Duesentriebdiscussão) |
Política de compatibilidade | Lançamentos de capturas de ecrã junto com o MediaWiki. Original não é compatível com versões anteriores. |
MediaWiki | 1.19+ |
Licença | GNU - Licença Pública Geral 2.0 ou superior |
Transferência | README |
Exemplo | Wikimedia Commons: Resumo do gadget -> preferências do usuário -> clique em "Gadgets" (necessário está autenticado/logado) |
|
|
Quarterly downloads | 116 (Ranked 50th) |
Public wikis using | 4,529 (Ranked 177th) |
Traduza a extensão Gadgets se ela estiver disponível em translatewiki.net | |
Problemas | Tarefas em aberto · Reportar um erro |
A extensão "Gadgets" oferece aos usuários uma forma de escolher gadgets baseados em JavaScript ou CSS feitos por outros usuários da wiki.
Os gadgets são compostos por JavaScript e/ou CSS snippets , localizados nas páginas "namespace" (espaço nominal) do MediaWiki. Each gadget is defined by a line in MediaWiki:Gadgets-definition, providing a name and description for the gadget, and a list of the JS and CSS snippets that it uses (see the Usage section below).
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
- Exporte e coloque o ficheiro, ou ficheiros, num diretório chamado
Gadgets
, na sua pastaextensions/
.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Gadgets - Acrescente o seguinte código ao fundo do ficheiro $LocalSettings:
wfLoadExtension( 'Gadgets' );
- Pronto – Na página especial Special:Version da sua wiki verifique se a extensão foi instalada.
Utilização
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
Cada linha na página MediaWiki:Gadgets-definition deve começar com um caracter "*" (asterisco) para definir um gadget. A linha tem o seguinte formato:
* mygadget [Opções] | Nomes de páginas
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
[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 | option2 | ... optionN]
A bandeira ResourceLoader é necessária, a menos que o gadget contenha apenas estilos. As opções que são "banderas" só precisam ter o nome escrito para ser ligadas. 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.css
or
* mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css
Usando o namespace na 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'
.
(On MediaWiki 1.39+, the value to use instead is '\\MediaWiki\\Extension\\Gadgets\\GadgetDefinitionNamespaceRepo'
.)
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": [],
"messages": [],
"type": ""
}
}
No exemplo acima são usados os códigos Gadget:Mygadget.js
e o Gadget:mygadget.css
.
Opções
Nome | Parâmetros | Descrição | Início |
---|---|---|---|
ResourceLoader |
None | 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) |
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, task T199478). Since 1.39, the ResourceLoader module is not registered on skins the gadget is unavailable on, so the gadget cannot be loaded on those skins as a dependency or using mw.loader.load() either (task T236603).
O uso de
skins deve ser o último recurso e deve ser restrito a código especializado que depende de manipulação de DOM, que é usado na ausência de APIs não padronizadas que não são atendidas pelos métodos listados em ResourceLoader/Core module. For example code which relies on DOM manipulation in the absence of standardized APIs and that cannot be implemented using Core modules. |
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
|
Comma-separated category names | Make the gadget available only on the specified categories. E.g. categories = Archived, Maintenance to load a gadget only on pages in the Category:Archived or Category:Maintenance. See also: Template gadgets.
|
1.42 (gerrit:1005092) |
namespaces
|
Nomes de ações separados por vírgula | Faça o gadget disponível apenas nas ações especificadas na página. Por exemplo, namespaces = 0, 2 para carregar um gadget apenas no espaço principal e no espaço de nomes do usuário.
|
1.41 (gerrit:624517) |
contentModels
|
Nomes de ações 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
|
None | 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
|
None | 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 |
supportsUrlLoad
|
None | true | false | Faça o gadget disponível para ser carregado com o parâmetro de consulta de URL de ?withgadget .
|
1.38 |
Name | Parameters | Description | Since | Removed |
---|---|---|---|---|
top
|
None | 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
|
None | 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. Conflicts with 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 padrão, use "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 de direitos, 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
User rights
gadgets-edit
e gadgets-definition-edit
, que por padrão não são dados a nenhum grupo.
Você pode adicionar o seguinte ao seu LocalSettings.php para fornecer as permissões apropriadas para os usuários que estão dentro do grupo interface-admin.
A edição de páginas no namespace do gadget requer o direito gadgets-edit
e a edição de páginas no namespace de definição do gadget requer o direito gadgets-definition-edit
.
$wgGroupPermissions['interface-admin']['gadgets-edit'] = true;
$wgGroupPermissions['interface-admin']['gadgets-definition-edit'] = true;
Páginas
Os campos restantes na linha de definição referem-se às páginas de origem JavaScript, CSS ou JSON que compõem o módulo de 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 da página devem terminar com ".css", ".js", ou ".json" respectivamente.
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
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.
See the first and last lines of MediaWiki:Gadget-externalsearch-bar.js for an example.
Seçõ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 definiria uma nova seção, com o título definido na página MediaWiki:Gadget-section-interface-gadgets.
Popular gadgets
Veja meta:Gadgets, lista com os gadgets mais populares nas comunidades da Wikimedia.
Veja também
- Special:Gadgets – lista todos os gadgets e uma breve descrição de cada um
- Extension:Gadgets/Roadmap
- Gerenciamento de Gadget
- Extension:Widgets
- Snippets
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. |
- Extensions bundled with MediaWiki 1.18/pt
- Stable extensions/pt
- Personalization extensions/pt
- Special page extensions/pt
- API extensions/pt
- GPL licensed extensions/pt
- Extensions in Wikimedia version control/pt
- BeforePageDisplay extensions/pt
- CodeEditorGetPageLanguage extensions/pt
- ContentHandlerDefaultModelFor extensions/pt
- DeleteUnknownPreferences extensions/pt
- GetPreferences extensions/pt
- PageDeleteComplete extensions/pt
- PageSaveComplete extensions/pt
- PreferencesGetIcon extensions/pt
- PreferencesGetLegend extensions/pt
- ResourceLoaderRegisterModules extensions/pt
- UserGetDefaultOptions extensions/pt
- GetUserPermissionsErrors extensions/pt
- WgQueryPages extensions/pt
- All extensions/pt
- Extensions used on Wikimedia/pt
- Extensions included in BlueSpice/pt
- Extensions included in Canasta/pt
- Extensions available as Debian packages/pt
- Extensions included in Fandom/pt
- Extensions included in Miraheze/pt
- Extensions included in MyWikis/pt
- Extensions included in ProWiki/pt
- Extensions included in semantic::core/pt
- Extensions included in ShoutWiki/pt
- Extensions included in Telepedia/pt
- Extensions included in wiki.gg/pt
- Extensions included in WikiForge/pt
- Gadgets/pt
- JavaScript/pt