Mudanças entre as edições de "Widget:Conquistas"

De Wiki Gla
Ir para navegação Ir para pesquisar
m (fix)
m
Linha 24: Linha 24:


         <!--
         <!--
           O conteúdo (todos os painéis com seus cards) é gerado pelo
           Painéis vazios. O Módulo:Conquistas (#invoke renderAll) emite os
           Módulo:Conquistas e injetado aqui via parâmetro Smarty `content`.
          cards FORA do widget (Smarty não reparsa wikitext, então não dá pra
          passar como parâmetro). O JS abaixo move cada card pro painel certo
           a partir do data-tab.


           Widgets do MediaWiki NÃO parseiam wikitext dentro do <includeonly>,
           Uso na página da wiki:
          então o #invoke precisa ser passado pela própria página:
               {{#widget:Conquistas}}
 
              {{#invoke:Conquistas|renderAll}}
               {{#widget:Conquistas|content={{#invoke:Conquistas|renderAll}}}}
 
          Se aparecer o texto "{{#invoke:Conquistas|renderAll}}" em vez dos
          cards, é porque a página ainda chama {{#widget:Conquistas}} sem o
          parâmetro `content`.
         -->
         -->
         <!--{$content|default:''}-->
         <div class="gla-conquistas-panel is-active" data-tab-content="geral">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="personagens">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="missao">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="bau">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="navegacao">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="pvp">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="pve">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="coliseu">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="poneglyph">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="indicacao">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="celular">
            <div class="gla-list"></div>
        </div>
        <div class="gla-conquistas-panel" data-tab-content="bossrush">
            <div class="gla-list"></div>
        </div>
     </div>
     </div>


Linha 99: Linha 131:
         .gla-conquistas-panel.is-active {
         .gla-conquistas-panel.is-active {
             display: block;
             display: block;
        }
        /* CONTAINER ORIGEM (cards do #invoke antes do JS realocar)
          Fica escondido pra evitar flash; depois o JS remove esse div. */
        .gla-conquistas-source {
            display: none;
         }
         }


Linha 201: Linha 239:
             var tabs = root.querySelectorAll(".gla-conquistas-tab");
             var tabs = root.querySelectorAll(".gla-conquistas-tab");
             var panels = root.querySelectorAll(".gla-conquistas-panel");
             var panels = root.querySelectorAll(".gla-conquistas-panel");
            // Mapa data-tab-content -> .gla-list pra evitar querySelectorAll N vezes
            var validTabs = {};
            panels.forEach(function (p) {
                var name = p.getAttribute("data-tab-content");
                if (name) {
                    validTabs[name] = p.querySelector(".gla-list");
                }
            });
            // Pega TODOS os cards .gla-item[data-tab] do documento (vêm do
            // {{#invoke:Conquistas|renderAll}} que fica fora do widget) e
            // move pra dentro do painel correspondente.
            document.querySelectorAll(".gla-item[data-tab]").forEach(function (card) {
                if (root.contains(card)) return; // já está dentro
                var tag = (card.getAttribute("data-tab") || "").toLowerCase();
                var list = validTabs[tag] || validTabs["geral"];
                if (list) list.appendChild(card);
            });
            // Limpa o container origem agora vazio (deixado pelo invoke).
            document.querySelectorAll(".gla-conquistas-source").forEach(function (src) {
                if (src.parentNode) src.parentNode.removeChild(src);
            });


             function abrirAba(nome) {
             function abrirAba(nome) {

Edição das 01h59min de 15 de maio de 2026