Mudanças entre as edições de "MediaWiki:Common.js"

De Micropedia
Ir para navegação Ir para pesquisar
(teste - anti bot)
(limpeza)
Linha 1: Linha 1:
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
+
/* =========================================================
 
+
  Micropédia — Common.js otimizado
$(function() {
+
  ========================================================= */
    // Cria o botão scroll-to-top button
 
    var $botaoTopo = $('<div id="botaoTopo">⬆️ Topo</div>').css({
 
        display: "none",
 
        position: "fixed",
 
        bottom: "85px", // <-- distância do roda pé (~85px)
 
        right: "20px",
 
        padding: "10px 15px",
 
        background: "#9bbeab",
 
        color: "#000",
 
        "border-radius": "8px",
 
        cursor: "pointer",
 
        "box-shadow": "0 2px 6px rgba(0,0,0,0.3)",
 
        "font-weight": "bold",
 
        "z-index": "9999"
 
    }).appendTo("body");
 
 
 
    // Mostrar/esconder com base no scroll
 
    $(window).scroll(function() {
 
        if ($(this).scrollTop() > $(document).height() / 2) {
 
            $botaoTopo.fadeIn();
 
        } else {
 
            $botaoTopo.fadeOut();
 
        }
 
    });
 
 
 
    // Ação ao clicar
 
    $botaoTopo.click(function() {
 
        $("html, body").animate({scrollTop: 0}, 500);
 
        return false;
 
    });
 
});
 
 
 
 
 
 
 
  
 
jQuery(document).ready(function ($) {
 
jQuery(document).ready(function ($) {
  
     /* Sai imediatamente se não for a Página principal */
+
     /* =====================================================
    if (!$('body').hasClass('page-Página_principal')) return;
+
      1. BOTÃO "VOLTAR AO TOPO" (único e otimizado)
 
+
       ===================================================== */
    /* ── 1. CARDS: aplica border-collapse separate via JS
+
     let $topo = $('#botaoTopo');
       (fallback para navegadores que ignoram em <table>) ── */
 
     $('table.mph-card').css({
 
        'border-radius':  '10px',
 
        'border-collapse': 'separate',
 
        'overflow':        'hidden'
 
    });
 
  
    /* ── 2. BOTÃO VOLTAR AO TOPO
 
      Reutiliza o #botaoTopo que o wiki já cria,
 
      ou cria um novo caso não exista ── */
 
    var $topo = $('#botaoTopo');
 
 
     if ($topo.length === 0) {
 
     if ($topo.length === 0) {
 
         $topo = $('<div id="botaoTopo">⬆ Topo</div>').css({
 
         $topo = $('<div id="botaoTopo">⬆ Topo</div>').css({
             position:     'fixed',
+
             position: 'fixed',
             bottom:       '20px',
+
             bottom: '20px',
             right:       '20px',
+
             right: '20px',
             padding:     '8px 14px',
+
             padding: '8px 14px',
             background:   '#9bbeab',
+
             background: '#9bbeab',
             color:       '#1a3a28',
+
             color: '#1a3a28',
 
             borderRadius: '8px',
 
             borderRadius: '8px',
             cursor:       'pointer',
+
             cursor: 'pointer',
             boxShadow:   '0 2px 6px rgba(0,0,0,0.25)',
+
             boxShadow: '0 2px 6px rgba(0,0,0,0.25)',
             fontWeight:   'bold',
+
             fontWeight: 'bold',
             fontSize:     '13px',
+
             fontSize: '13px',
             zIndex:       9999,
+
             zIndex: 9999,
             display:     'none'
+
             display: 'none'
 
         });
 
         });
 
         $('body').append($topo);
 
         $('body').append($topo);
Linha 76: Linha 32:
 
         $topo.toggle($(this).scrollTop() > 400);
 
         $topo.toggle($(this).scrollTop() > 400);
 
     });
 
     });
 +
 
     $topo.on('click', function () {
 
     $topo.on('click', function () {
 
         $('html, body').animate({ scrollTop: 0 }, 300);
 
         $('html, body').animate({ scrollTop: 0 }, 300);
 
     });
 
     });
  
     /* ── 3. LINKS EXTERNOS nos cards: nova aba ── */
+
 
 +
     /* =====================================================
 +
      2. APLICAÇÕES VISUAIS (APENAS NA PÁGINA PRINCIPAL)
 +
      ===================================================== */
 +
    if (mw.config.get("wgPageName") !== "Página_principal") return;
 +
 
 +
    /* Cards com borda arredondada correta */
 +
    $('table.mph-card').css({
 +
        borderRadius: '10px',
 +
        borderCollapse: 'separate',
 +
        overflow: 'hidden'
 +
    });
 +
 
 +
    /* Links externos abrem em nova aba */
 
     $('.mph-card a[href^="http"]')
 
     $('.mph-card a[href^="http"]')
        .not('a[href*="micropedia.com.br"]')
 
 
         .not('a[href*="' + window.location.hostname + '"]')
 
         .not('a[href*="' + window.location.hostname + '"]')
 
         .attr({ target: '_blank', rel: 'noopener noreferrer' });
 
         .attr({ target: '_blank', rel: 'noopener noreferrer' });
  
     /* ── 4. HOVER suave nas imagens dos Acontecimentos Recentes ── */
+
     /* Hover suave nas imagens */
 
     $('.mph-card li img').css({
 
     $('.mph-card li img').css({
         'vertical-align': 'middle',
+
         verticalAlign: 'middle',
         'transition':     'transform 0.15s ease'
+
         transition: 'transform 0.15s ease'
 
     }).on('mouseenter', function () {
 
     }).on('mouseenter', function () {
 
         $(this).css('transform', 'scale(1.06)');
 
         $(this).css('transform', 'scale(1.06)');
Linha 96: Linha 65:
 
     });
 
     });
  
     /* ── 5. OCULTAR o título "Página principal" (redundante com o logo) ── */
+
     /* Oculta título redundante */
 
     $('#firstHeading').hide();
 
     $('#firstHeading').hide();
  
 
});
 
});
 +
 +
 +
/* =========================================================
 +
  3. ANTI-SPAM (CAPTCHA SIMPLES)
 +
  ========================================================= */
  
 
mw.hook('wikipage.editform').add(function () {
 
mw.hook('wikipage.editform').add(function () {
  const form = document.getElementById('editform');
 
  
  if (!form) return;
+
    /* Não aplicar para administradores */
 +
    if (mw.config.get("wgUserGroups").includes("sysop")) return;
 +
 
 +
    const form = document.getElementById('editform');
 +
    if (!form) return;
 +
 
 +
    form.addEventListener('submit', function (e) {
 +
 
 +
        const answer = prompt("Verificação rápida: quanto é 7 + 3?");
  
  const answer = prompt("Digite 7 + 3 para confirmar:");
+
        if (answer !== "10") {
 +
            alert("Resposta incorreta. Tente novamente.");
 +
            e.preventDefault();
 +
        }
  
  if (answer !== "10") {
+
     });
     alert("Erro na verificação.");
 
    form.addEventListener('submit', e => e.preventDefault());
 
  }
 
 
});
 
});

Edição das 00h51min de 14 de abril de 2026

/* =========================================================
   Micropédia — Common.js otimizado
   ========================================================= */

jQuery(document).ready(function ($) {

    /* =====================================================
       1. BOTÃO "VOLTAR AO TOPO" (único e otimizado)
       ===================================================== */
    let $topo = $('#botaoTopo');

    if ($topo.length === 0) {
        $topo = $('<div id="botaoTopo">⬆ Topo</div>').css({
            position: 'fixed',
            bottom: '20px',
            right: '20px',
            padding: '8px 14px',
            background: '#9bbeab',
            color: '#1a3a28',
            borderRadius: '8px',
            cursor: 'pointer',
            boxShadow: '0 2px 6px rgba(0,0,0,0.25)',
            fontWeight: 'bold',
            fontSize: '13px',
            zIndex: 9999,
            display: 'none'
        });
        $('body').append($topo);
    }

    $(window).on('scroll.mph', function () {
        $topo.toggle($(this).scrollTop() > 400);
    });

    $topo.on('click', function () {
        $('html, body').animate({ scrollTop: 0 }, 300);
    });


    /* =====================================================
       2. APLICAÇÕES VISUAIS (APENAS NA PÁGINA PRINCIPAL)
       ===================================================== */
    if (mw.config.get("wgPageName") !== "Página_principal") return;

    /* Cards com borda arredondada correta */
    $('table.mph-card').css({
        borderRadius: '10px',
        borderCollapse: 'separate',
        overflow: 'hidden'
    });

    /* Links externos abrem em nova aba */
    $('.mph-card a[href^="http"]')
        .not('a[href*="' + window.location.hostname + '"]')
        .attr({ target: '_blank', rel: 'noopener noreferrer' });

    /* Hover suave nas imagens */
    $('.mph-card li img').css({
        verticalAlign: 'middle',
        transition: 'transform 0.15s ease'
    }).on('mouseenter', function () {
        $(this).css('transform', 'scale(1.06)');
    }).on('mouseleave', function () {
        $(this).css('transform', 'scale(1)');
    });

    /* Oculta título redundante */
    $('#firstHeading').hide();

});


/* =========================================================
   3. ANTI-SPAM (CAPTCHA SIMPLES)
   ========================================================= */

mw.hook('wikipage.editform').add(function () {

    /* Não aplicar para administradores */
    if (mw.config.get("wgUserGroups").includes("sysop")) return;

    const form = document.getElementById('editform');
    if (!form) return;

    form.addEventListener('submit', function (e) {

        const answer = prompt("Verificação rápida: quanto é 7 + 3?");

        if (answer !== "10") {
            alert("Resposta incorreta. Tente novamente.");
            e.preventDefault();
        }

    });
});