Ir para o conteúdo

Ajuda:Como personalizar as barras de ferramentas

Origem: Wikipédia, a enciclopédia livre.
Portlets MediaWiki como vistos na tema Vector antigo.

A barra lateral esquerda e a barra de ferramentas pessoal superior podem ser personalizadas editando os arquivos tema.js ou common.js. Edições no arquivo tema.js aplicam-se apenas ao tema atual, enquanto common.js aplica-se a todos os temas.

Visão geral

[editar | editar código]

Uso geral:

$.when(mw.loader.using('mediawiki.util'), $.ready).then(function () {
    mw.util.addPortletLink('idDoPortlet', 'href', 'texto', 'id', 'dica', 'chaveDeAcesso', 'próximoNode');
});

Onde:

  • mw.util.addPortletLink: a função ResourceLoader para adicionar links aos portlets.
  • portletId: ID do portlet — a seção onde o novo item de menu será inserido. Valores válidos:
    • p-navigation: Seção de navegação na barra lateral esquerda
    • p-interaction: Seção de interação na barra lateral esquerda
    • p-tb: Seção de ferramentas na barra lateral esquerda
    • p-coll-print_export: Seção de impressão/exportação na barra lateral esquerda
    • p-lang: Seção de idiomas na barra lateral esquerda
    • p-wikibase-otherprojects: Na seção Outros Projetos, na barra lateral esquerda.
    • p-personal: Barra de ferramentas pessoal na parte superior da página
    • p-views: Abas superiores direitas apenas no Vector (ler, editar, histórico, assistir, etc.)
    • p-cactions: Menu suspenso contendo opções como mover, etc. (no Vector); links de assunto/discussão e links de ação em outras skins.
  • href: Link para a Wikipédia ou página externa
  • texto: Texto que é exibido
  • id: ID HTML (opcional)
  • dica: Dica de ferramenta a ser exibida ao passar o mouse (opcional)
  • chaveDeAcesso: Tecla de atalho (opcional)
  • próximoNode: Link do portlet existente antes do qual o novo link do portlet será inserido (opcional)

Os campos opcionais devem ser incluídos na ordem acima. Para ignorar um campo sem alterá-lo, use o valor null.

As ligações para páginas da Wikipédia têm o formato "/wiki/nome da página"; exemplo: "/wiki/Especial:Páginas_novas".

As ligações externas são formatadas usando o URL completo; exemplo: 'http://exemplo.org'.

Existem várias variáveis de configuração que podem ser usadas para criar links mais complexos. Uma variável de configuração é lida usando a função mw.config.get(‘nomeDaVariável’):

  • wgArticlePath: Caminho local, começando na raiz, para referenciar artigos, contendo um espaço reservado "$1" que pode ser substituído pelo título da página para obter um URL válido para essa página.
  • wgPageName: O nome completo da página, incluindo o nome do domínio localizado, se o domínio tiver um nome (o domínio principal (número 0) não tem), e com os espaços em branco substituídos por sublinhados.
  • wgServer: O URL do servidor, não terminado por "/".

Dado um título de página válido, uma URL válida pode ser construída usando mw.config.get('wgArticlePath').replace('$1', título):

mw.config.get('wgServer') + mw.config.get('wgArticlePath').replace("$1", "Especial:Registo/"+ encodeURI(mw.config.get('wgPageName')))

Que, no caso desta página, retornaria:

//pt.wikipedia.org/wiki/Especial:Registo/Ajuda:Como_personalizar_as_barras_de_ferramentas

Onde a ligação é montada pelas seguintes partes:

Código JS Trecho da URL
mw.config.get('wgServer') //pt.wikipedia.org
mw.config.get('wgArticlePath') /wiki/$1
.replace("$1", "Especial:Registo/...") /wiki/Especial:Registo
mw.config.get('wgPageName') Como_personalizar_as_barras_de_ferramentas
encodeURI(mw.config.get('wgPageName')) Ajuda:Como_personalizar_as_barras_de_ferramentas

No entanto, para ligações locais, pode ser mais aconselhável e simples usar o método mw.util.getUrl (descrição, documentação da API):

mw.util.getUrl('C++')            // "/wiki/C%2B%2B"
mw.util.getUrl('C++', { action: 'history' }) // "/w/index.php?title=C%2B%2B&action=history"

Adicione o portlet a uma subpágina do usuário na barra de ferramentas à esquerda:

mw.util.addPortletLink ('p-tb', '/wiki/Usuário(a):nomeDeUsuário/nomeDaPágina', 'Nome da minha página');

Adicione o portlet em Especial:Páginas novas na barra de ferramentas à esquerda:

mw.util.addPortletLink ('p-tb', '/wiki/Especial:Páginas_novas', 'Páginas Novas');

Abra a página atual no Checklinks, na barra de ferramentas à esquerda:

mw.util.addPortletLink ('p-tb', 'http://toolserver.org/~dispenser/cgi-bin/webchecklinks.py/' + encodeURI(mw.config.get('wgPageName'))
  + '?client=script&citeweb=on&overwrite=&limit=20&lang=' + mw.config.get('wgContentLanguage'), 'Checklinks');

Abra a página atual em Reflinks na barra de ferramentas à esquerda:

mw.util.addPortletLink ('p-tb', 'http://toolserver.org/~dispenser/cgi-bin/reflinks.py?lang=' + mw.config.get('wgContentLanguage') + '&page=' + encodeURIComponent(mw.config.get('wgPageName')) + '&autoclick=wpPreview', 'Reflinks');

Abra a página em Reflinks, na barra de ferramentas pessoal; formatada em várias linhas:

mw.util.addPortletLink(
'p-personal',
'http://toolserver.org/~dispenser/cgi-bin/reflinks.py?lang=' + mw.config.get('wgContentLanguage') + '&page=' + encodeURIComponent(mw.config.get('wgPageName')) + '&autoclick=wpPreview',
'Reflinks');

Adicione um portlet para abrir as subpáginas do usuário na barra de ferramentas pessoal, posicionado antes do portlet de Preferências:

 mw.util.addPortletLink(
 'p-personal',
 '/wiki/Especial:Índice_por_prefixo/Usuário(a):NomeDeUsuário',
 'subpages',
 'pt-subpages',
 'Suas subpáginas',
 null,
 '#pt-preferences'
);