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
 
(125 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 () {
<head>
  Date.prototype.getWeekNumber = function () {
    <meta charset="UTF-8">
    let d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    let dayNum = d.getUTCDay() || 7; // Garante que domingo (0) seja o último dia da semana
    <title>Filtro de Mapas</title>
     let yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
    <style>
    return Math.ceil((((d - yearStart) / 86400000) + 1) / 7); // Calcula o número da semana
        .hidden { display: none; }
  };
        .disabled { opacity: 0.5; pointer-events: none; }
        .selected { background-color: #ccc; }
        .tag-button { cursor: pointer; padding: 5px; border: 1px solid #ccc; margin: 2px; display: inline-block; }
        .map-image { width: 100px; height: 100px; }
        .image-item { margin-bottom: 10px; }
        .image-info { margin-top: 5px; }
    </style>
</head>
<body>
     <div>
        <label>
            <input type="checkbox" id="filterActive"> Ativar Filtro
        </label>
        <div id="mapTypeContainer">
            <label>
                Tipo de Mapa:
                <select id="mapType">
                    <option value="">Selecione</option>
                    <option value="1">Mapa Vermelho</option>
                </select>
            </label>
        </div>
        <div id="specificOptionsContainer">
            <label>
                Local do X:
                <select id="specificOption">
                    <option value="">Selecione</option>
                    <option value="Areia">Areia</option>
                    <option value="Gelo">Gelo</option>
                    <option value="Grama">Grama</option>
                    <option value="Pedra">Pedra</option>
                    <option value="Subaquático">Subaquático</option>
                    <option value="Terra">Terra</option>
                    <option value="Pisos">Pisos</option>
                </select>
            </label>
            <div id="tagButtons" class="hidden">
                <!-- Tags serão adicionadas dinamicamente aqui -->
            </div>
        </div>
        <button id="filterButton" class="hidden">Filtrar</button>
    </div>
    <div id="imageContainer"></div>


    <script>
  const url = window.location.origin;
        const specificOptions = {
  const dzCard = document.getElementById('dz-card');
            1: {
  const today = new Date();
                'Areia': [
  let actualWeekNumber = today.getWeekNumber();
                    { id: '101', local: 'Green Island', coordinates: '3780, 3326, 7', tags: ['Areia', 'Água', 'Grama', 'Árvore'], imageUrl: 'https://wiki.pokexgames.com/images/4/4c/Mapas_de_ADV_VERMELHO_-_3780%2C_3326%2C_7.webp' },
                    { id: '102', local: 'Wildwind Island', coordinates: '3969, 3300, 7', tags: ['Areia', 'Terra', 'Árvore'], imageUrl: 'https://wiki.pokexgames.com/images/5/58/Mapas_de_ADV_VERMELHO_-_3969%2C_3300%2C_7.webp' },
                    { id: '103', local: 'Wildwind Island', coordinates: '4002, 3320, 7', tags: ['Areia', 'Árvore', 'Pedra'], imageUrl: 'https://wiki.pokexgames.com/images/0/07/Mapas_de_ADV_VERMELHO_-_4002%2C_3320%2C_7.webp' },
                    { id: '104', local: 'Saffron', coordinates: '4009, 3601, 7', tags: ['Areia', 'Árvore', 'Terra', 'Água'], imageUrl: 'https://wiki.pokexgames.com/images/f/f5/Mapas_de_ADV_VERMELHO_-_4009%2C_3601%2C_7.webp' },
                    { id: '105', local: 'Hurricane Island', coordinates: '4166, 3302, 7', tags: ['Areia', 'Árvore', 'Água'], imageUrl: 'https://wiki.pokexgames.com/images/0/0d/Mapas_de_ADV_VERMELHO_-_4166%2C_3302%2C_7.webp' }
                ],
                'Gelo': [
                    { id: '201', local: 'Frozen Tundra', coordinates: '5600, 5200, 7', tags: ['Gelo'], imageUrl: 'https://wiki.pokexgames.com/images/6/6f/Mapas_de_ADV_VERDE_-_5600%2C_5200%2C_7.webp' }
                ],
                'Grama': [
                    { id: '301', local: 'Grassland Fields', coordinates: '3300, 2200, 7', tags: ['Grama'], imageUrl: 'https://wiki.pokexgames.com/images/7/70/Mapas_de_ADV_ROXO_-_3300%2C_2200%2C_7.webp' }
                ],
                'Pedra': [
                    { id: '401', local: 'Rocky Ridge', coordinates: '4800, 4600, 7', tags: ['Pedra'], imageUrl: 'https://wiki.pokexgames.com/images/8/80/Mapas_de_ADV_VERMELHO_-_4800%2C_4600%2C_7.webp' }
                ],
                'Subaquático': [
                    { id: '501', local: 'Underwater Cave', coordinates: '5700, 5200, 7', tags: ['Água'], imageUrl: 'https://wiki.pokexgames.com/images/9/90/Mapas_de_ADV_VERMELHO_-_5700%2C_5200%2C_7.webp' }
                ],
                'Terra': [
                    { id: '601', local: 'Mountain Pass', coordinates: '6100, 5300, 7', tags: ['Terra'], imageUrl: 'https://wiki.pokexgames.com/images/a/a0/Mapas_de_ADV_VERMELHO_-_6100%2C_5300%2C_7.webp' }
                ],
                'Pisos': [
                    { id: '701', local: 'Concrete Jungle', coordinates: '6000, 5500, 7', tags: ['Piso'], imageUrl: 'https://wiki.pokexgames.com/images/b/b0/Mapas_de_ADV_VERMELHO_-_6000%2C_5500%2C_7.webp' }
                ]
            }
        };


        const tagMap = {
  // Verificar se é sexta-feira (dia 5) e se passou das 7 da manhã
            'Areia': 'Areia',
  const isFridayAfter7AM = today.getDay() === 5 && today.getHours() >= 7;
            'Gelo': 'Gelo',
            'Grama': 'Grama',
            'Pedra': 'Pedra',
            'Subaquático': 'Água',
            'Terra': 'Terra',
            'Pisos': 'Piso'
        };


        function updateTagButtons() {
  // Se for sexta-feira depois das 7 da manhã, incrementa o número da semana
            const specificOption = document.getElementById('specificOption').value;
  if (isFridayAfter7AM) {
            const tagButtons = document.querySelectorAll('.tag-button');
    actualWeekNumber++;
           
  }
            tagButtons.forEach(button => {
                const tagValue = button.getAttribute('data-value');
                if (tagMap[specificOption] === tagValue) {
                    button.classList.add('selected');
                    button.classList.add('disabled');
                    button.setAttribute('disabled', 'true');
                } else {
                    button.classList.remove('disabled');
                    button.removeAttribute('disabled');
                }
            });


            document.getElementById('tagButtons').classList.remove('hidden');
  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' },
  ];


        function toggleTagButton(e) {
  // Ajuste para garantir que a "Décima segunda semana" seja a primeira exibida
            if (e.target.classList.contains('tag-button')) {
  let weekIndex = actualWeekNumber % 12;
                if (e.target.classList.contains('disabled')) return;
                e.target.classList.toggle('selected');
                filterImages();
            }
        }


        function filterImages() {
  // Exibir a imagem correspondente à semana
            const mapType = document.getElementById('mapType').value;
  dzCard.src = url + dzWeeks[weekIndex].image;
            const specificOption = document.getElementById('specificOption').value;
  dzCard.alt = dzWeeks[weekIndex].name;
            const selectedTags = Array.from(document.querySelectorAll('.tag-button.selected')).map(button => button.getAttribute('data-value'));
});
 
</script>
            let filteredMaps = [];
 
            if (mapType && specificOption) {
                filteredMaps = specificOptions[mapType][specificOption] || [];
            }
 
            if (selectedTags.length > 0) {
                filteredMaps = filteredMaps.filter(map => {
                    return selectedTags.some(tag => map.tags.includes(tag));
                });
            }
 
            displayMaps(filteredMaps);
        }
 
        function displayMaps(maps) {
            const container = document.getElementById('imageContainer');
            container.innerHTML = ''; // Clear previous results
 
            maps.forEach(map => {
                const imageItem = document.createElement('div');
                imageItem.className = 'image-item';
 
                const image = document.createElement('img');
                image.src = map.imageUrl;
                image.alt = map.local;
                image.className = 'map-image';
 
                const info = document.createElement('div');
                info.className = 'image-info';
                info.innerHTML = `
                    <b>Número do Mapa</b>: ${map.id} <br>
                    <b>Local</b>: ${map.local} <br>
                    <b>Coordenada</b>: ${map.coordinates}<br>
                    <b>Tag(s)</b>: ${map.tags.join(', ') || 'Nenhuma'}
                `;
 
                imageItem.appendChild(image);
                imageItem.appendChild(info);
 
                container.appendChild(imageItem);
            });
 
            container.classList.remove('hidden');
        }
 
        document.getElementById('filterActive').addEventListener('change', function () {
            const isActive = this.checked;
            document.getElementById('filterButton').classList.toggle('hidden', !isActive);
        });
 
        document.getElementById('mapType').addEventListener('change', function () {
            const mapType = this.value;
            const specificOptionContainer = document.getElementById('specificOptionsContainer');
            if (mapType) {
                specificOptionContainer.classList.remove('hidden');
            } else {
                specificOptionContainer.classList.add('hidden');
                document.getElementById('specificOption').value = '';
                document.getElementById('tagButtons').innerHTML = '';
                document.getElementById('tagButtons').classList.add('hidden');
            }
            updateTagButtons();
            filterImages();
        });
 
        document.getElementById('specificOption').addEventListener('change', function () {
            updateTagButtons();
            filterImages();
        });
 
        document.getElementById('filterButton').addEventListener('click', filterImages);
 
        function populateTagButtons() {
            const tags = Object.keys(tagMap);
            const container = document.getElementById('tagButtons');
            container.innerHTML = ''; // Clear existing buttons
 
            tags.forEach(tag => {
                const button = document.createElement('div');
                button.className = 'tag-button';
                button.setAttribute('data-value', tag);
                button.textContent = tag;
                container.appendChild(button);
            });
 
            container.classList.remove('hidden');
        }
 
        populateTagButtons();
 
        document.getElementById('tagButtons').addEventListener('click', toggleTagButton);
 
        // Initialize the page
        document.getElementById('specificOptionsContainer').classList.add('hidden');
        document.getElementById('filterButton').classList.add('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>