MediaWiki:Common.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Conteúdo deletado Conteúdo adicionado
Sem resumo de edição Etiqueta: Revertido |
Sem resumo de edição Etiqueta: Reversão manual |
||
| (11 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 2: | Linha 2: | ||
/* Ocultar links para páginas especiais de usuários não registrados */ |
/* Ocultar links para páginas especiais de usuários não registrados */ |
||
if ( mw.config.get( 'wgUserName' ) === null ) { |
|||
$(function () { |
|||
$( function () { |
|||
// Variável para controlar se já escondeu |
|||
// Exemplo: Oculta o link "Páginas especiais" na navegação lateral (Vector skin) |
|||
let searchHidden = false; |
|||
$( '#n-specialpages' ).hide(); |
|||
// Função principal para ocultar elementos |
|||
// Se você quiser ocultar um link específico, como "Mudanças recentes" (RecentChanges) |
|||
const hideElementsForAnonymous = function() { |
|||
// |
// $( '#n-recentchanges' ).hide(); |
||
if (mw.config.get('wgUserName') !== null) { |
|||
// Oculte itens adicionais do menu "Ferramentas" (toolbox) conforme necessário |
|||
return; |
|||
// $( '#t-whatlinkshere' ).hide(); // Oculta "Páginas afluentes" |
|||
} |
|||
/ |
/* --- NOVO: esconder a busca apenas para anônimos --- */ |
||
if (searchHidden) { |
|||
// Skins clássicas (Vector legado, MonoBook) |
|||
// Verificar se algum elemento de busca está visível |
|||
$( '#p-search, #searchform, #searchInput' ).hide(); |
|||
$('.vector-search-box').is(':visible') || |
|||
// Vector 2022 (barra de busca no topo) |
|||
$('#searchInput').is(':visible'); |
|||
$( '.vector-search-box, .vector-search-box-input, .vector-search-box-form' ).hide(); |
|||
if (!searchVisible) { |
|||
// Fallback: se algum elemento for re-inserido dinamicamente, garante ocultação |
|||
return; // Já está oculto, não precisa fazer nada |
|||
// (ex.: carregamentos tardios ou gadgets que recriam a busca) |
|||
} |
|||
const hideSearch = function () { |
|||
} |
|||
$( '#p-search, #searchform, #searchInput' ).hide(); |
|||
$( '.vector-search-box, .vector-search-box-input, .vector-search-box-form' ).hide(); |
|||
// 1. Ocultar páginas especiais da navegação |
|||
}; |
|||
// Observa mudanças no DOM por alguns segundos para pegar inserções tardias |
|||
// 2. Ocultar TODAS as variações possíveis de busca |
|||
const |
const observer = new MutationObserver( hideSearch ); |
||
observer.observe( document.body, { childList: true, subtree: true } ); |
|||
'#p-search', |
|||
setTimeout( () => observer.disconnect(), 5000 ); |
|||
} ); |
|||
'#searchInput', |
|||
} |
|||
'#simpleSearch', |
|||
'.mw-search', |
|||
'.vector-search-box', |
|||
'.vector-search-box-input', |
|||
'.vector-search-box-form', |
|||
'.vector-search-box-vue', |
|||
'.cdx-search-input', |
|||
'.cdx-text-input__input', |
|||
'[id*="search"]', |
|||
'[class*="search"]', |
|||
'input[name="search"]', |
|||
'.vector-header-end .vector-search-box', |
|||
'.vector-header-start .vector-search-box' |
|||
]; |
|||
// Aplicar a cada seletor |
|||
searchSelectors.forEach(selector => { |
|||
try { |
|||
$(selector).each(function() { |
|||
$(this).hide(); |
|||
$(this).css({ |
|||
'display': 'none !important', |
|||
'visibility': 'hidden !important' |
|||
}); |
|||
}); |
|||
} catch (e) { |
|||
console.log('Erro com seletor:', selector, e); |
|||
} |
|||
}); |
|||
// 3. Marcar como escondido |
|||
searchHidden = true; |
|||
// 4. Adicionar classe ao body para controle via CSS |
|||
$('body').addClass('anonymous-user'); |
|||
}; |
|||
// Executar imediatamente |
|||
hideElementsForAnonymous(); |
|||
// Executar novamente após carregamento completo |
|||
$(window).on('load', hideElementsForAnonymous); |
|||
// Executar em intervalos curtos inicialmente |
|||
let intervalCount = 0; |
|||
const initialInterval = setInterval(() => { |
|||
hideElementsForAnonymous(); |
|||
intervalCount++; |
|||
if (intervalCount > 10) { // Parar após 10 execuções (5 segundos) |
|||
clearInterval(initialInterval); |
|||
} |
|||
}, 500); |
|||
// Observar mudanças no DOM de forma mais agressiva |
|||
const observer = new MutationObserver(function(mutations) { |
|||
let shouldHide = false; |
|||
mutations.forEach(function(mutation) { |
|||
if (mutation.addedNodes.length > 0) { |
|||
// Verificar se algum nó adicionado contém elementos de busca |
|||
$(mutation.addedNodes).each(function() { |
|||
if ($(this).find(searchSelectors.join(',')).length > 0 || |
|||
$(this).is(searchSelectors.join(','))) { |
|||
shouldHide = true; |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
if (shouldHide) { |
|||
hideElementsForAnonymous(); |
|||
} |
|||
}); |
|||
observer.observe(document.body, { |
|||
childList: true, |
|||
subtree: true, |
|||
attributes: true, |
|||
attributeFilter: ['style', 'class', 'id'] |
|||
}); |
|||
// Monitorar cliques em qualquer link, especialmente "ENTRAR" |
|||
$(document).on('click', 'a', function(e) { |
|||
const href = $(this).attr('href') || ''; |
|||
if (href.includes('Special:UserLogin') || |
|||
href.includes('title=Special:UserLogin') || |
|||
$(this).text().toLowerCase().includes('entrar') || |
|||
$(this).attr('id') === 'pt-login') { |
|||
// Antes do redirecionamento, garantir que elementos estejam ocultos |
|||
setTimeout(hideElementsForAnonymous, 100); |
|||
setTimeout(hideElementsForAnonymous, 500); |
|||
} |
|||
}); |
|||
// Monitorar mudanças na URL (para quando clicar em ENTRAR) |
|||
let lastUrl = location.href; |
|||
new MutationObserver(() => { |
|||
const url = location.href; |
|||
if (url !== lastUrl) { |
|||
lastUrl = url; |
|||
if (url.includes('Special:UserLogin')) { |
|||
setTimeout(hideElementsForAnonymous, 100); |
|||
setTimeout(hideElementsForAnonymous, 500); |
|||
} |
|||
} |
|||
}).observe(document, { subtree: true, childList: true }); |
|||
}); |
|||
Edição atual tal como às 09h37min de 16 de janeiro de 2026
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
/* Ocultar links para páginas especiais de usuários não registrados */
if ( mw.config.get( 'wgUserName' ) === null ) {
$( function () {
// Exemplo: Oculta o link "Páginas especiais" na navegação lateral (Vector skin)
$( '#n-specialpages' ).hide();
// Se você quiser ocultar um link específico, como "Mudanças recentes" (RecentChanges)
// $( '#n-recentchanges' ).hide();
// Oculte itens adicionais do menu "Ferramentas" (toolbox) conforme necessário
// $( '#t-whatlinkshere' ).hide(); // Oculta "Páginas afluentes"
/* --- NOVO: esconder a busca apenas para anônimos --- */
// Skins clássicas (Vector legado, MonoBook)
$( '#p-search, #searchform, #searchInput' ).hide();
// Vector 2022 (barra de busca no topo)
$( '.vector-search-box, .vector-search-box-input, .vector-search-box-form' ).hide();
// Fallback: se algum elemento for re-inserido dinamicamente, garante ocultação
// (ex.: carregamentos tardios ou gadgets que recriam a busca)
const hideSearch = function () {
$( '#p-search, #searchform, #searchInput' ).hide();
$( '.vector-search-box, .vector-search-box-input, .vector-search-box-form' ).hide();
};
// Observa mudanças no DOM por alguns segundos para pegar inserções tardias
const observer = new MutationObserver( hideSearch );
observer.observe( document.body, { childList: true, subtree: true } );
setTimeout( () => observer.disconnect(), 5000 );
} );
}