Widget:Test3: mudanças entre as edições

De PokeXGames
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(161 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
<!DOCTYPE html>
<script>
<html lang="pt-BR">
document.addEventListener('DOMContentLoaded', function () {
  Date.prototype.getWeekNumber = function () {
    let d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));
    let dayNum = d.getUTCDay() || 7; // Garante que domingo (0) seja o último dia da semana
    let yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
    return Math.ceil((((d - yearStart) / 86400000) + 1) / 7); // Calcula o número da semana
  };


<head>
  const url = window.location.origin;
    <meta charset="UTF-8">
  const dzCard = document.getElementById('dz-card');
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  const today = new Date();
    <title>Seleção e Exibição de Imagens</title>
  let actualWeekNumber = today.getWeekNumber();
<style>
        .d-flex {
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
            margin-top: -15px;
            /* Ajuste este valor conforme necessário para subir o botão */
        }


        .hidden {
  // Verificar se é sexta-feira (dia 5) e se passou das 7 da manhã
            display: none;
  const isFridayAfter7AM = today.getDay() === 5 && today.getHours() >= 7;
        }


        .image-container {
  // Se for sexta-feira depois das 7 da manhã, incrementa o número da semana
            display: flex;
  if (isFridayAfter7AM) {
            flex-wrap: wrap;
    actualWeekNumber++;
            justify-content: center;
  }
            gap: 10px;
            margin-top: 5px;
        }


        .image-container .image-item {
  const dzWeeks = [
            flex: 1 0 30%;
    { name: 'Décima segunda semana', image: '/images/1/11/Card_DZ_D%C3%A9cima-Segunda-Semana.png' },
            text-align: center;
    { name: 'Primeira semana', image: '/images/b/b2/Card_DZ_Primeira-Semana.png' },
        }
    { name: 'Segunda semana', image: '/images/9/97/Card_DZ_Segunda-Semana.png' },
    { name: 'Terceira semana', image: '/images/f/fd/Card_DZ_Terceira-Semana.png' },
    { name: 'Quarta semana', image: '/images/1/17/Card_DZ_Quarta-Semana.png' },
    { name: 'Quinta semana', image: '/images/4/40/Card_DZ_Quinta-Semana.png' },
    { name: 'Sexta semana', image: '/images/2/23/Card_DZ_Sexta-Semana.png' },
    { name: 'Sétima semana', image: '/images/f/f2/Card_DZ_S%C3%A9tima-Semana.png' },
    { name: 'Oitava semana', image: '/images/9/97/Card_DZ_Oitava-Semana.png' },
    { name: 'Nona semana', image: '/images/b/b3/Card_DZ_Nona-Semana.png' },
    { name: 'Décima semana', image: '/images/3/30/Card_DZ_D%C3%A9cima-Semana.png' },
    { name: 'Décima primeira semana', image: '/images/4/49/Card_DZ_D%C3%A9cima-Primeira-Semana.png' },
  ];


.image-container img {
  // Ajuste para garantir que a "Décima segunda semana" seja a primeira exibida
    object-fit: cover; /* Mantém a proporção da imagem, cortando se necessário */
  let weekIndex = actualWeekNumber % 12;
    margin-bottom: 5px;
}


        .image-info {
  // Exibir a imagem correspondente à semana
            margin-top: 5px;
  dzCard.src = url + dzWeeks[weekIndex].image;
        }
  dzCard.alt = dzWeeks[weekIndex].name;
 
});
        select,
</script>
        input[type="text"],
        button {
            margin: 5px;
        }
 
        #filterButton,
        #searchButton {
            background: none;
            /* Remove o fundo do botão */
            border: none;
            /* Remove a borda do botão */
            padding: 0;
            /* Remove o padding do botão */
            cursor: pointer;
            /* Mostra o cursor de ponteiro ao passar sobre o botão */
            margin-top: 5px;
            /* Ajuste a margem superior para subir o botão */
        }
 
        #filterButton img,
        #searchButton img {
            border-radius: 12px;
            width: auto;
            /* Garante que a largura se ajuste ao tamanho original da imagem */
            height: auto;
            /* Garante que a altura se ajuste ao tamanho original da imagem */
        }
 
        .mw-body-content {
            display: flex;
        }
 
        .mw-parser-output {
            display: inline-block;
            padding: .5rem 2rem;
            margin: 0 auto;
            border: 30px solid transparent;
            border-image: url(https://wiki.pokexgames.com/images/3/37/Calculadora-de-Boost.png) 38;
            min-width: 340px;
            min-height: 270px;
          }
 
        .input-group {
            position: relative;
            margin: 20px 0;
            /* Ajuste a margem para mover o campo para cima */
        }
 
        .input-group label {
            position: absolute;
            top: -18px;
            /* Eleva o texto para cima */
            background: none;
            padding: 0 5px;
            font-size: 14px;
            font-weight: bold;
            color: #0d0d0d;
        }
 
        .maps__select {
            width: 100%;
            /* Mantém a largura total disponível */
            padding: 10px;
            font-size: 16px;
            border-radius: 5px;
            border: 1px solid #ccc;
            appearance: none;
            background-color: #fff;
            /* Adiciona um fundo branco */
            box-sizing: border-box;
            /* Inclui o padding e a borda na largura total */
        }
 
 
        .input-group input[type="text"] {
            width: 100%;
            /* Mantém a largura total disponível */
            padding: 10px;
            font-size: 16px;
            border-radius: 5px;
            border: 1px solid #ccc;
            box-sizing: border-box;
            /* Inclui o padding e a borda na largura total */
        }
 
        .maps__label {
            position: absolute;
            top: -18px;
            /* Eleva o texto um pouco mais para cima */
            background: none;
            padding: 0 5px;
            font-size: 14px;
            font-weight: bold;
            /* Deixa o texto em negrito */
            color: #0d0d0d;
        }
 
        .hover-minimize:hover {
            transform: scale(0.95);
            /* Adiciona um efeito de minimizar ao passar o mouse */
        }
 
        .filter-container {
            display: flex;
            align-items: center;
 
        }
 
        .filter-container input[type="checkbox"] {
            margin: 0;
            padding: 0;
            width: auto;
            /* Ajusta o tamanho da checkbox conforme necessário */
            height: auto;
            /* Ajusta o tamanho da checkbox conforme necessário */
            /* Alinha verticalmente a checkbox com o texto */
            vertical-align: middle;
        }
 
        .filter-label {
            margin-left: 10px;
            /* Espaço entre a checkbox e o texto */
            font-size: 14px;
            font-weight: bold;
            color: #0d0d0d;
            line-height: 1.5;
            /* Ajusta a altura da linha para um alinhamento adequado */
        }
    </style>
</head>
<body>
    <form id="mapForm">
        <!-- Seu código HTML existente aqui -->
       
        <div class="filter-container">
            <input type="checkbox" id="enableFilter">
            <label for="enableFilter" class="filter-label">Ativar filtro</label>
        </div>
       
        <div id="filterSection" class="hidden">
            <div id="filterById" class="input-group">
                <label for="filterOption" class="maps__label">Filtrar Por</label>
                <select id="filterOption" class="maps__select">
                    <option value="">Escolha uma Opção</option>
                    <option value="number">Filtrar por Número</option>
                    <option value="tag">Filtrar por Tag</option>
                </select>
               
                <!-- Adicionar seção de checkboxes para tags -->
                <div id="tagCheckboxes" class="hidden">
                    <!-- As checkboxes serão geradas dinamicamente aqui -->
                </div>
            </div>
           
            <div class="d-flex justify-center align-center flex-column">
                <button type="button" id="filterButton" class="hover-minimize">
                    <img src="https://wiki.pokexgames.com/images/8/82/Botao_Filtrar_Mapas_Adv.png" alt="Imagem botão filtrar">
                </button>
            </div>
        </div>
 
        <div id="imageContainer" class="image-container hidden">
            <!-- As imagens e suas informações serão exibidas aqui -->
        </div>
    </form>
 
    <script>
const specificOptions = {
1: {
    'Pisos':[
    { id: '701', local: 'Pewter', coordinates: '3698, 3447, 8', tags:['Piso','Construção'], imageUrl: 'https://wiki.pokexgames.com/images/e/ea/Mapas_de_ADV_VERMELHO_-_3698%2C_3447%2C_8.webp' },
    { id: '702', local: 'Cemitério de Lavender', coordinates: '4302, 3662, 8', tags:['Piso','Construção', 'Fogo'], imageUrl: 'https://wiki.pokexgames.com/images/f/f7/Mapas_de_ADV_VERMELHO_-_4302%2C_3662%2C_8.webp' },
    { id: '703', local: 'Cemitério de Lavender', coordinates: '4356, 3641, 9', tags:['Piso','Terra'], imageUrl: 'https://wiki.pokexgames.com/images/1/15/Mapas_de_ADV_VERMELHO_-_4356%2C_3641%2C_9.webp' },
    { id: '704', local: 'Desert Island', coordinates: '4559, 3656, 9', tags:['Piso','Pirâmide', 'Fogo', 'Construção'], imageUrl: 'https://wiki.pokexgames.com/images/d/dc/Mapas_de_ADV_VERMELHO_-_4559%2C_3656%2C_9.webp' },
    { id: '715', local: 'Ghost Ship', coordinates: '4673, 5599, 7',tags:['Piso', 'Construção', 'Água'], imageUrl: 'https://wiki.pokexgames.com/images/c/c7/Mapas_de_ADV_VERMELHO_-_4673%2C_5599%2C_7.webp' },
    ]
    },
 
2: {
                'Pedra': [
                { id: '4001', local: ' Outland Fire', coordinates: '2793, 3029, 7', tags: ['Pedra'], imageUrl: 'https://wiki.pokexgames.com/images/f/fc/Mapa_Verde_ADV_-_2793%2C_3029%2C_7.webp' },
{ id: '4002', local: ' Outland Water', coordinates: '2808, 2864, 7', tags: ['Pedra', 'Árvore', 'Areia'], imageUrl: 'https://wiki.pokexgames.com/images/0/0a/Mapa_Verde_ADV_-_2808%2C_2864%2C_7.webp' },
{ id: '4003', local: ' Respawn de Hariyama', coordinates: '5368, 5779, 5', tags: ['Pedra', 'Construção'], imageUrl: 'https://wiki.pokexgames.com/images/4/45/Mapa_Verde_ADV_-_5368%2C_5779%2C_5.webp' },
{ id: '4004', local: ' Respawn de Blaziken', coordinates: '5613, 5910, 4', tags: ['Pedra', 'Fogo'], imageUrl: 'https://wiki.pokexgames.com/images/a/ab/Mapa_Verde_ADV_-_5613%2C_5910%2C_4.webp' },
{ id: '4016', local: ' Caminho da Outland East', coordinates: '3786, 3979, 11', tags: ['Pedra', 'Terra', 'Fogo'], imageUrl: 'https://wiki.pokexgames.com/images/c/c6/Mapa_Verde_ADV_-_3786%2C_3979%2C_11.webp' },
{ id: '4017', local: ' Caminho da Outland East', coordinates: '3808, 3928, 11', tags: ['Pedra', 'Terra'], imageUrl: 'https://wiki.pokexgames.com/images/e/e7/Mapa_Verde_ADV_-_3808%2C_3928%2C_11.webp' },
{ id: '4018', local: ' Respawn de Mawile', coordinates: '5375, 5661, 6', tags: ['Pedra', 'Piso'], imageUrl: 'https://wiki.pokexgames.com/images/8/82/Mapa_Verde_ADV_-_5375%2C_5661%2C_6.webp' },
{ id: '4019', local: ' Respawn de Sableye', coordinates: '5462, 5553, 7', tags: ['Pedra'], imageUrl: 'https://wiki.pokexgames.com/images/c/ca/Mapa_Verde_ADV_-_5462%2C_5553%2C_7.webp' },
                ],
                'Subaquáticos': [
                { id: '5001', local: ' Caminho da Outland North', coordinates: '4204, 4404, 12', tags: ['Água', 'Pedra'], imageUrl: 'https://wiki.pokexgames.com/images/4/4b/Mapa_Verde_ADV_-_4204%2C_4404%2C_12.webp' },
{ id: '5002', local: ' Área subaquática próximo aos Zangoose', coordinates: '5425, 5747, 8', tags: ['Água', 'Pedra'], imageUrl: 'https://wiki.pokexgames.com/images/6/63/Mapa_Verde_ADV_-_5425%2C_5747%2C_8.webp' },
                ]
            },
};
 
        document.getElementById('enableFilter').addEventListener('change', function () {
            const filterSection = document.getElementById('filterSection');
            if (this.checked) {
                filterSection.classList.remove('hidden');
            } else {
                filterSection.classList.add('hidden');
            }
        });
 
        document.getElementById('filterOption').addEventListener('change', function () {
            const selectedFilterOption = this.value;
            const tagCheckboxes = document.getElementById('tagCheckboxes');
           
            if (selectedFilterOption === 'tag') {
                tagCheckboxes.classList.remove('hidden');
                populateTagCheckboxes();
            } else {
                tagCheckboxes.classList.add('hidden');
            }
        });
 
        function populateTagCheckboxes() {
            const tagCheckboxes = document.getElementById('tagCheckboxes');
            tagCheckboxes.innerHTML = ''; // Limpa as checkboxes anteriores
           
            // Coleta todas as tags únicas
            const uniqueTags = new Set();
            for (let mapType in specificOptions) {
                for (let option in specificOptions[mapType]) {
                    specificOptions[mapType][option].forEach(map => {
                        map.tags.forEach(tag => uniqueTags.add(tag));
                    });
                }
            }
 
            // Cria as checkboxes para cada tag única
            uniqueTags.forEach(tag => {
                const checkbox = document.createElement('input');
                checkbox.type = 'checkbox';
                checkbox.value = tag;
                checkbox.id = `tag-${tag}`;
 
                const label = document.createElement('label');
                label.htmlFor = `tag-${tag}`;
                label.textContent = tag;
 
                const div = document.createElement('div');
                div.appendChild(checkbox);
                div.appendChild(label);
 
                tagCheckboxes.appendChild(div);
            });
        }
 
        document.getElementById('filterButton').addEventListener('click', function() {
            const selectedMapType = document.getElementById('mapType').value;
            const selectedOption = document.getElementById('specificOption').value;
            const selectedTags = Array.from(document.querySelectorAll('#tagCheckboxes input[type="checkbox"]:checked')).map(checkbox => checkbox.value);
            const imageContainer = document.getElementById('imageContainer');
 
            if (selectedMapType && selectedOption) {
                const images = specificOptions[selectedMapType][selectedOption].filter(map => {
                    return selectedTags.every(tag => map.tags.includes(tag));
                });
 
                let imagesHtml = '';
                images.forEach(map => {
                    imagesHtml += `
                        <div class="image-item">
                            <img src="${map.imageUrl}" alt="${map.local}">
                            <div class="image-info">
                                <p>ID: ${map.id}</p>
                                <p>Local: ${map.local}</p>
                                <p>Coordenadas: ${map.coordinates}</p>
                                <p>Tags: ${map.tags.join(', ')}</p>
                            </div>
                        </div>`;
                });
               
                imageContainer.innerHTML = imagesHtml;
                imageContainer.classList.remove('hidden');
            }
        });
 
    </script>
</body>
</html>

Edição atual tal como às 15h45min de 7 de setembro de 2024

<script> document.addEventListener('DOMContentLoaded', function () {

 Date.prototype.getWeekNumber = function () {
   let d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));
   let dayNum = d.getUTCDay() || 7; // Garante que domingo (0) seja o último dia da semana
   let yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
   return Math.ceil((((d - yearStart) / 86400000) + 1) / 7); // Calcula o número da semana
 };
 const url = window.location.origin;
 const dzCard = document.getElementById('dz-card');
 const today = new Date();
 let actualWeekNumber = today.getWeekNumber();
 // Verificar se é sexta-feira (dia 5) e se passou das 7 da manhã
 const isFridayAfter7AM = today.getDay() === 5 && today.getHours() >= 7;
 // Se for sexta-feira depois das 7 da manhã, incrementa o número da semana
 if (isFridayAfter7AM) {
   actualWeekNumber++;
 }
 const dzWeeks = [
   { name: 'Décima segunda semana', image: '/images/1/11/Card_DZ_D%C3%A9cima-Segunda-Semana.png' },
   { name: 'Primeira semana', image: '/images/b/b2/Card_DZ_Primeira-Semana.png' },
   { name: 'Segunda semana', image: '/images/9/97/Card_DZ_Segunda-Semana.png' },
   { name: 'Terceira semana', image: '/images/f/fd/Card_DZ_Terceira-Semana.png' },
   { name: 'Quarta semana', image: '/images/1/17/Card_DZ_Quarta-Semana.png' },
   { name: 'Quinta semana', image: '/images/4/40/Card_DZ_Quinta-Semana.png' },
   { name: 'Sexta semana', image: '/images/2/23/Card_DZ_Sexta-Semana.png' },
   { name: 'Sétima semana', image: '/images/f/f2/Card_DZ_S%C3%A9tima-Semana.png' },
   { name: 'Oitava semana', image: '/images/9/97/Card_DZ_Oitava-Semana.png' },
   { name: 'Nona semana', image: '/images/b/b3/Card_DZ_Nona-Semana.png' },
   { name: 'Décima semana', image: '/images/3/30/Card_DZ_D%C3%A9cima-Semana.png' },
   { name: 'Décima primeira semana', image: '/images/4/49/Card_DZ_D%C3%A9cima-Primeira-Semana.png' },
 ];
 // Ajuste para garantir que a "Décima segunda semana" seja a primeira exibida
 let weekIndex = actualWeekNumber % 12;
 // Exibir a imagem correspondente à semana
 dzCard.src = url + dzWeeks[weekIndex].image;
 dzCard.alt = dzWeeks[weekIndex].name;

}); </script>