Jump to content

MoreMenu

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page MoreMenu and the translation is 100% complete.
MoreMenu
Analisando as contribuições de Jimbo
DescriçãoLigações úteis para tarefas, ferramentas de análise de usuários e páginas e registros comuns
AutoresMusikAnimal
Atualizado2023-07-25 (966 day ago)
Versão5.1.23
Código fonteGitHub
Suporte de temaTodos
Suporte de navegadorTodos os navegadores "modernos", veja Compatibilidade#Navegadores

MoreMenu é um script que adiciona os menus suspensos "Página" e, se aplicável, "Usuário" à barra de ferramentas. É o sucessor ao gadget Drop-down menus, de Haza-w, e foi fortemente influenciado por ele.

Visão geral

Este gadget adiciona até dois menus suspensos à barra de menus, contendo links para tarefas comuns úteis, registros de usuários/páginas, ferramentas analíticas/estatísticas e ferramentas para administradores. O menu Página é visível para todas as páginas exceto pelas especiais. O menu Usuário é visível apenas em páginas relacionadas a um usuário, incluindo páginas de contribuições.

Captura de tela do menu Análises do menu suspenso Página.
Coolest Tool Award 2022 logo
MoreMenu

2022 Coolest Tool
Award Winner

in the category
Editor

Certas ligações só estão disponíveis se você tem certos direitos (block para ligações de bloqueios, por exemplo). Além disso, os itens do menu Usuário podem aparecer com base nas condições do usuário que você está visualizando, como os direitos do usuário, se ele teve bloqueios atuais ou anteriores, etc. Por exemplo, o item Registro de bloqueios no submenu Bloqueios aparece somente se aquele usuário tiver sido bloqueado no passado. Algumas ligações também são visíveis apenas em determinados domínios e em determinados projetos.

Instalação

Instalando globalmente (recomendado)

Adicione o seguinte à sua global.js:

mw.loader.load('https://meta.wikimedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:MoreMenu.import.js');

Isso importará todos os módulos principais, fornecerá um script funcional e o disponibilizará em todas as wikis.

Extensão da Wikipédia em inglês

Se você é um usuário da Wikipédia em inglês, vá até common.js e importe a extensão enwiki, que adiciona itens do menu para RfAs/RfBs e XfDs, onde aplicável.

mw.loader.using(['mediawiki.util', 'mediawiki.api'], function () {
	mw.loader.load('https://en.wikipedia.org/w/?title=MediaWiki:Gadget-MoreMenu.enwiki.js&action=raw&ctype=text/javascript');
});

Extensões similares podem ser adicionadas a qualquer wiki, ou podem já existir na sua wiki. Veja Personalização abaixo para mais informações.

Se você usar o tema Vector, evitará que as guias na parte superior ("Editar", "Histórico", etc.) fiquem pulando. Para usuários de inglês, adicione o seguinte ao topo do seu global.css:

@import url('https://meta.wikimedia.org/w/index.php?title=MediaWiki:Gadget-MoreMenu-pagestyles.en.css&action=raw&ctype=text/css');

Para idiomas que não sejam o inglês, substitua o .en no caminho pelo código do idioma desejado. Veja Special:PrefixIndex/MediaWiki:Gadget-MoreMenu-pagestyles para a lista de idiomas suportados. Se o seu idioma estiver ausente, informe os mantenedores na página de discussão.

Instalação como gadget

Sua wiki local pode ter MoreMenu disponível nas preferências de gadget. Instalar globalmente é recomendado, no entanto, para que o MoreMenu esteja disponível em todas a wikis.

Se você for um administrador de interface e quiser instalar MoreMenu como gadget em sua Wiki, siga estes passos:

  1. Crie MediaWiki:Gadget-MoreMenu-local.js com o seguinte:
    mw.loader.load('https://meta.wikimedia.org/w/load.php?modules=ext.gadget.MoreMenu');
    
  2. Adicione o seguinte a MediaWiki:Gadgets-definition:
    * MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js
    
  3. Adicione a descrição para o gadget em MediaWiki:Gadget-MoreMenu-local, preferencialmente fazendo uma ligação para esta página ([[meta:MoreMenu]])
  4. Opcional: Você pode configurar um peer gadget que impede que os menus fiquem "pulando" no carregamento da página no tema Vector. Veja Peer gadget para mais informações.
  5. Opcional: Estenda MoreMenu adicionando ligações que são específicas à sua wiki, como por exemplo ligações para a Candidatura à Administração do usuário. Crie MediaWiki:Gadget-MoreMenu.extension.js com seu código de extensão, e modifique seu MediaWiki:Gadgets-definition para usá-lo:
    * MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js|MoreMenu.extension
    

Localização

As traduções são extraídas de MediaWiki:Gadget-MoreMenu.messages.lang.js, com MediaWiki:Gadget-MoreMenu.messages.en.js como alternativa. Para adicionar novas traduções, faça um pedido de edição protegida na página de discussão, listando os pares chave/valor das mensagens. Veja Special:PrefixIndex/MediaWiki:Gadget-MoreMenu.messages para uma lista de idiomas atualmente suportados.

Por favor envie mudanças às traduções em inglês como pull request no repositório do GitHub.

Personalização

Opções

  • MoreMenu.disableAutoRemoval – Não remover automaticamente o menu "Mais" nativo quando estiver vazio.
  • MoreMenu.prefillDeletionReason – Defina como false para desativar o preenchimento automático do motivo da eliminação ao clicar na ligação Eliminar.

Estas opções devem ser definidas no topo de seu global.js, como o seguinte:

MoreMenu = {
    disableAutoRemoval: true,
};

MoreMenu pode ser estendido com ligações e funcionalidades personalizadas. Ligações devem ser adicionadas apenas depois que o hook moremenu.ready tiver disparado. Veja os exemplos abaixo.

Adicionando ligações personalizadas

  • MoreMenu.addLink(menu, name, url, insertAfter)Adiciona a ligação a um menu especificado.
  • MoreMenu.addSubmenuLink(menu, submenu, name, url, insertAfter)Adiciona a ligação a um submenu especificado.

Aqui estão as descrições para cada parâmetro:

  • menu — A identificação do menu de nível superior no qual a ligação deve ser colocada. Pode ser "user", para "Usuário", ou "page", para "Página".
  • submenu — O ID do submenu no qual a ligação deve ser colocada. Por exemplo, "analysis", para "Análises", ou "page-logs", para os registros da página.
  • name — O título da ligação. Pode ser uma string simples ou uma chave de mensagem.
  • url — A URL para a ligação. Use mw.util.getUrl() para ligações internas.
  • insertAfter (optional) — O ID de um ligação existente após o qual colocar a ligação. Pode usar false para forçar a ligação a ser colocada no topo e true para forçá-la a ser colocada no fundo. Caso contrário, se não for encontrada nenhuma ligação com o ID fornecido ou se este parâmetro for totalmente omitido, a ligação será colocada no menu por ordem alfabética.

Exemplos

Para adicionar uma ligação para https://example.org no menu "Página", adicione o seguinte código à sua página common.js:

mw.hook('moremenu.ready').add(function (config) {
    MoreMenu.addLink(
        'page',
        'Example',
        'https://www.example.org'
    );
    
    // add more MoreMenu.addLink(); instances here...
    
});

O objeto config contém muitos dados. Na maioria dos casos, você deseja que sua ligação contenha o nome de usuário de alvo (config.targetUser.name) ou o nome da página (config.page.name). Se forem ligações externas, talvez seja necessário usar os nomes codificados, como config.targetUser.encodedName e config.page.encodedName. Consulte Valores de configuração para obter uma lista de todos os dados disponíveis.

Digamos que você queira mostrar um link para as páginas "Requests for Adminship" do usuário no submenu "Análises":

mw.hook('moremenu.ready').add(function (config) {
    MoreMenu.addSubmenuLink(
        'user',
        'analysis',
        'RfAs',
        mw.util.getUrl('Special:PrefixIndex/Wikipedia:Requests for Adminship/' + config.targetUser.name)
    );
    
    // add more links here...
    
});

Agora, digamos que você queira adicionar um submenu "RfXs", com links para RfAs, solicitação de burocracia, etc., e mostrar essas ligações apenas "se" essas páginas existirem. Veja Ligações para páginas que correspondem a um padrão para saber como fazer isso!

Avançado

Artigo principal: MoreMenu/Advanced

Além de MoreMenu.addLink() e MoreMenu.addSubmenuLink(), você pode aproveitar a lógica que o MoreMenu oferece para construir sua ligação com base em alguns parâmetros, como as permissões do usuário, ou adicionar um submenu totalmente novo de ligações.

Consulte MoreMenu/Advanced para mais informações.

Peer gadget

Esta documentação serve para configurar o MoreMenu como um gadget na sua wiki local. Consulte Menus saltando ao carregar a página para a instalação pelo usuário.

Quando menus de nível superior são adicionados ao tema Vector, as guias "Ler", "Editar" e "Ver histórico" serão deslocadas. Isso significa que, se você estiver trabalhando muito rapidamente, poderá clicar acidentalmente no lugar errado antes que o MoreMenu termine de carregar. Para evitar isso, você pode usar um gadget peer para manter o espaço disponível.

Primeiro, verifique Special:PrefixIndex/MediaWiki:Gadget-MoreMenu-pagestyles para ver se já existe um código CSS para o seu idioma que você possa copiar para o seu wiki. Se não houver, você precisará calcular as larguras. Depois que o gadget estiver habilitado, você poderá executar $('.mm-page').outerWidth() e $('.mm-user').outerWidth() para obter as larguras em pixels.

Quando você tiver as larguras, crie MediaWiki:Gadget-MoreMenu-local-pagestyles.css com o seguinte (neste caso para inglês, e usando em ao invés de px):

/*** VECTOR ***/

/* User menu */
.client-js .skin-vector.ns-2 #p-views,
.client-js .skin-vector.ns-3 #p-views,
.client-js > .skin-vector.mw-special-Contributions #p-views,
.client-js > .skin-vector.mw-special-DeletedContributions #p-views,
.client-js > .skin-vector.mw-special-Block #p-views {
    padding-right: 3.68em;
}

/* Page menu */
.client-js .skin-vector:not(.ns-special) #p-views .vector-menu-content::after {
    content: '';
    display: inline-block;
    width: 3.85em;
}

Então atualize sua configuração do gadget de acordo:

* MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options|peers=MoreMenu-local-pagestyles]|MoreMenu-local.js
* MoreMenu-local-pagestyles[hidden]|MoreMenu-local-pagestyles.css

Bugs/solicitações de funcionalidades

Pergunte/solicite qualquer coisa que você gostaria na página de discussão.