MoreMenu
Analisando as contribuições de Jimbo | |
| Descrição | Ligações úteis para tarefas, ferramentas de análise de usuários e páginas e registros comuns |
|---|---|
| Autores | MusikAnimal |
| Atualizado | 2023-07-25 (966 day ago) |
| Versão | 5.1.23 |
| Código fonte | GitHub |
| Suporte de tema | Todos |
| Suporte de navegador | Todos 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.

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.
Menus pulando no carregamento de página
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:
- Crie
MediaWiki:Gadget-MoreMenu-local.jscom o seguinte:mw.loader.load('https://meta.wikimedia.org/w/load.php?modules=ext.gadget.MoreMenu');
- Adicione o seguinte a
MediaWiki:Gadgets-definition:* MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js
- Adicione a descrição para o gadget em
MediaWiki:Gadget-MoreMenu-local, preferencialmente fazendo uma ligação para esta página ([[meta:MoreMenu]]) - 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.
- 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.jscom seu código de extensão, e modifique seuMediaWiki:Gadgets-definitionpara 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 comofalsepara 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. Usemw.util.getUrl()para ligações internas.insertAfter(optional) — O ID de um ligação existente após o qual colocar a ligação. Pode usarfalsepara forçar a ligação a ser colocada no topo etruepara 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
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
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.