— what’s in your heart? episode name
    — a letter from name surname

    до этого дня ни одна живая душа не знала о дурной привычке. до этого дня у него получалось скрывать свой секрет и выпускать напряжение таким способом. теперь это кажется почти невозможным. пальцы начнут дрожать, а тело — требовать никотиновой разрядки.

    — the lovers
    What must it be like not to be crippled by fear and self-loathing?
    The One the Morning After
    инфо // инфо // инфо // ифно

    Test

    Информация о пользователе

    Привет, Гость! Войдите или зарегистрируйтесь.


    Вы здесь » Test » Новый форум » админка счетчика постов


    админка счетчика постов

    Сообщений 1 страница 3 из 3

    1

    тун сахур

    2

    [html]
        <style>
            body {
                font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
                background-color: #f4f7f6;
                margin: 0;
                padding: 20px;
                display: flex;
                justify-content: center;
                align-items: center;
                min-height: 100vh;
            }

            .lottery-container {
                background: white;
                border-radius: 12px;
                box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
                padding: 30px;
                max-width: 500px;
                width: 100%;
                text-align: center;
            }

            h2 {
                color: #2c3e50;
                margin-top: 0;
                margin-bottom: 20px;
            }

            .task-box, .reward-box {
                background: #eef2f5;
                border: 2px dashed #bdc3c7;
                border-radius: 8px;
                padding: 20px;
                margin-bottom: 20px;
                min-height: 80px;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 1.1em;
                color: #34495e;
                transition: all 0.3s ease;
            }

            .reward-box {
                background: #fff9e6;
                border-color: #f1c40f;
                display: none; /* Скрыто по умолчанию */
            }

            .reward-box.success {
                background: #eafaf1;
                border-color: #2ecc71;
                color: #27ae60;
                font-weight: bold;
            }

            button {
                background-color: #3498db;
                color: white;
                border: none;
                padding: 12px 24px;
                border-radius: 6px;
                font-size: 1em;
                cursor: pointer;
                transition: background-color 0.2s, transform 0.1s;
                margin: 5px;
            }

            button:hover {
                background-color: #2980b9;
            }

            button:active {
                transform: scale(0.98);
            }

            button:disabled {
                background-color: #95a5a6;
                cursor: not-allowed;
                transform: none;
            }

            .btn-complete {
                background-color: #2ecc71;
                display: none; /* Скрыто по умолчанию */
            }

            .btn-complete:hover {
                background-color: #27ae60;
            }
           
            .loader {
                border: 4px solid #f3f3f3;
                border-top: 4px solid #3498db;
                border-radius: 50%;
                width: 30px;
                height: 30px;
                animation: spin 1s linear infinite;
                margin: 0 auto;
                display: none;
            }

            @keyframes spin {
                0% { transform: rotate(0deg); }
                100% { transform: rotate(360deg); }
            }

        </style>
    </head>
    <body>

        <div class="lottery-container">
            <h2>Ежедневная Лотерея</h2>
            <p>Получите случайное задание, выполните его и заберите награду!</p>

            <div id="taskDisplay" class="task-box">
                Нажмите кнопку ниже, чтобы получить задание.
            </div>
           
            <div id="loadingIndicator" class="loader"></div>

            <div id="rewardDisplay" class="reward-box">
                <!-- Здесь будет награда -->
            </div>

            <div>
                <button id="btnGetTask" onclick="generateTask()">Получить задание</button>
                <button id="btnCompleteTask" class="btn-complete" onclick="completeTask()">Я выполнил(а) задание!</button>
            </div>
        </div>

        <script>
            // Массив с заданиями. Можете добавлять или изменять их здесь.
            const tasks = [
                "Написать 3 новых сообщения в игровых темах.",
                "Создать новую тему для обсуждения во флудилке.",
                "Оставить развернутый комментарий в профиле случайного пользователя.",
                "Написать пост объемом не менее 1500 символов.",
                "Поучаствовать в форумной игре (например, в 'Ассоциации').",
                "Заполнить или обновить анкету своего персонажа.",
                "Пригласить друга зарегистрироваться на форуме.",
                "Оценить 5 последних постов других игроков.",
                "Написать отзыв о форуме в специальной теме.",
                "Сменить аватар на тематический (праздничный, сезонный)."
            ];

            // Массив с наградами. Можете добавлять или изменять их здесь.
            const rewards = [
                "🏆 +100 очков репутации",
                "💰 500 золотых монет на счет",
                "✨ Уникальная медаль 'Счастливчик'",
                "🎨 Право на бесплатную смену ника",
                "💎 VIP-статус на 3 дня",
                "🎁 Секретный подарок от Администрации",
                "⭐ +50 очков опыта",
                "🛡️ Иммунитет к бану на неделю (шутка, но может быть!)",
                "📜 Индивидуальное звание под аватаром",
                "💸 Удвоение опыта за следующий пост"
            ];

            // Получаем элементы со страницы для взаимодействия с ними
            const taskDisplay = document.getElementById('taskDisplay');
            const rewardDisplay = document.getElementById('rewardDisplay');
            const btnGetTask = document.getElementById('btnGetTask');
            const btnCompleteTask = document.getElementById('btnCompleteTask');
            const loadingIndicator = document.getElementById('loadingIndicator');

            // Переменная для хранения текущего состояния
            let isTaskActive = false;
            let currentTask = ""; // Добавили переменную для хранения текущего задания

            // Функция для получения случайного элемента из массива
            function getRandomItem(array) {
                const randomIndex = Math.floor(Math.random() * array.length);
                return array[randomIndex];
            }

            // Функция, которая срабатывает при нажатии на "Получить задание"
            function generateTask() {
                if (isTaskActive) return; // Защита от повторного нажатия, если задание уже получено

                // Анимация или индикация загрузки (опционально, для эффекта)
                taskDisplay.style.opacity = 0.5;
               
                setTimeout(() => {
                    currentTask = getRandomItem(tasks); // Сохраняем задание
                    taskDisplay.innerHTML = `<strong>Ваше задание:</strong><br><br>${currentTask}`;
                    taskDisplay.style.opacity = 1;
                   
                    // Меняем состояние кнопок
                    btnGetTask.style.display = 'none';
                    btnCompleteTask.style.display = 'inline-block';
                   
                    // Скрываем блок награды, если он был показан ранее
                    rewardDisplay.style.display = 'none';
                    rewardDisplay.classList.remove('success');
                   
                    isTaskActive = true;
                }, 500); // Небольшая задержка для имитации "выбора"
            }

            // Функция, которая срабатывает при нажатии на "Я выполнил(а) задание!"
            function completeTask() {
                if (!isTaskActive) return;

                // Блокируем кнопку, чтобы не нажимали дважды
                btnCompleteTask.disabled = true;
                btnCompleteTask.innerText = "Проверка...";
                taskDisplay.style.display = 'none'; // Скрываем задание
                loadingIndicator.style.display = 'block'; // Показываем лоадер

                // Имитация процесса проверки модератором или сервером (задержка 2 секунды)
                setTimeout(() => {
                    loadingIndicator.style.display = 'none'; // Скрываем лоадер
                   
                    // Выбираем случайную награду
                    const randomReward = getRandomItem(rewards);
                   
                    // Формируем красивый блок с результатом, обернутый в [html]
                    const bbCodeResult = `[html]<div style="background:#eafaf1; border:2px solid #2ecc71; padding:15px; border-radius:8px; text-align:center; font-family:sans-serif; color:#2c3e50; margin: 10px 0;">
                        <h3 style="margin:0 0 10px 0; color:#27ae60;">Лотерея выполнена!</h3>
                        <p style="margin:5px 0;"><b>Задание:</b> ${currentTask}</p>
                        <p style="margin:5px 0;"><b>Награда:</b> <span style="font-size:1.1em;">${randomReward}</span></p>
                    </div>[/html]`;

                    // Пытаемся вставить результат в форму ответа Rusff
                    let inserted = false;
                    if (typeof insert === 'function') {
                        // Используем стандартную функцию Rusff для вставки BB-кодов
                        insert(bbCodeResult);
                        inserted = true;
                    } else {
                        // Либо ищем само поле ответа напрямую
                        const replyBox = document.getElementById('main-reply');
                        if (replyBox) {
                            replyBox.value += (replyBox.value ? '\n' : '') + bbCodeResult;
                            inserted = true;
                        }
                    }

                    // Отображаем награду
                    rewardDisplay.style.display = 'flex';
                    rewardDisplay.style.flexDirection = 'column'; // Выстраиваем элементы в колонку
                    rewardDisplay.classList.add('success');
                   
                    if (inserted) {
                        rewardDisplay.innerHTML = `Поздравляем! Задание выполнено!<br><br><strong>Ваша награда:</strong><br>${randomReward}<br><br><span style="font-size: 0.85em; color: #27ae60;">✓ Код с результатом автоматически добавлен в форму ответа!</span>`;
                    } else {
                        // Если поля ответа нет на текущей странице, даем возможность скопировать код
                        rewardDisplay.innerHTML = `Поздравляем! Задание выполнено!<br><br><strong>Ваша награда:</strong><br>${randomReward}<br><br><span style="font-size: 0.85em; color: #e67e22;">Скопируйте код ниже и вставьте его в ваше сообщение:</span><textarea onclick="this.select()" style="width:100%; height:80px; margin-top:10px; padding:5px; font-family:monospace; font-size:12px; border:1px solid #bdc3c7; border-radius:4px; resize:vertical;">${bbCodeResult}</textarea>`;
                    }
                   
                    // Возвращаем кнопки в исходное состояние (или можно оставить так до обновления страницы)
                    // Для цикличной игры раскомментируйте строки ниже:
                    /*
                    btnGetTask.style.display = 'inline-block';
                    btnGetTask.innerText = 'Получить новое задание';
                    btnCompleteTask.style.display = 'none';
                    btnCompleteTask.disabled = false;
                    btnCompleteTask.innerText = 'Я выполнил(а) задание!';
                    isTaskActive = false;
                    taskDisplay.style.display = 'flex'; // Возвращаем блок задания (пустой)
                    taskDisplay.innerHTML = "Нажмите кнопку ниже, чтобы получить новое задание.";
                    */
                   
                   // В текущем виде скрипт требует перезагрузки страницы для новой игры
                   btnCompleteTask.style.display = 'none';
                   
                   // Добавляем кнопку "Сыграть еще раз" вместо исходных
                   const btnPlayAgain = document.createElement('button');
                   btnPlayAgain.innerText = "Сыграть еще раз";
                   btnPlayAgain.onclick = function() {
                       location.reload(); // Простая перезагрузка страницы
                   };
                   document.querySelector('.lottery-container div:last-child').appendChild(btnPlayAgain);

                }, 2000); // 2000 миллисекунд = 2 секунды задержки
            }
        </script>
    </body>
    [/html]

    3

    [html]<style>
        .lottery-wrapper {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            padding: 20px;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: transparent;
        }

        .lottery-container {
            background: white;
                border-radius: 12px;
                box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
                padding: 30px;
                max-width: 500px;
                width: 100%;
                text-align: center;
            }

            h2 {
                color: #2c3e50;
                margin-top: 0;
                margin-bottom: 20px;
            }

            .task-box, .reward-box {
                background: #eef2f5;
                border: 2px dashed #bdc3c7;
                border-radius: 8px;
                padding: 20px;
                margin-bottom: 20px;
                min-height: 80px;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 1.1em;
                color: #34495e;
                transition: all 0.3s ease;
            }

            .reward-box {
                background: #fff9e6;
                border-color: #f1c40f;
                display: none; /* Скрыто по умолчанию */
            }

            .reward-box.success {
                background: #eafaf1;
                border-color: #2ecc71;
                color: #27ae60;
                font-weight: bold;
            }

            button {
                background-color: #3498db;
                color: white;
                border: none;
                padding: 12px 24px;
                border-radius: 6px;
                font-size: 1em;
                cursor: pointer;
                transition: background-color 0.2s, transform 0.1s;
                margin: 5px;
            }

            button:hover {
                background-color: #2980b9;
            }

            button:active {
                transform: scale(0.98);
            }

            button:disabled {
                background-color: #95a5a6;
                cursor: not-allowed;
                transform: none;
            }

            .btn-complete {
                background-color: #2ecc71;
                display: none; /* Скрыто по умолчанию */
            }

            .btn-complete:hover {
                background-color: #27ae60;
            }
           
            .loader {
                border: 4px solid #f3f3f3;
                border-top: 4px solid #3498db;
                border-radius: 50%;
                width: 30px;
                height: 30px;
                animation: spin 1s linear infinite;
                margin: 0 auto;
                display: none;
            }

            @keyframes spin {
                0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

    </style>

    <div class="lottery-wrapper">
        <div class="lottery-container">
            <h2>Ежедневная Лотерея</h2>
            <p>Получите случайное задание, выполните его и заберите награду!</p>

            <div id="taskDisplay" class="task-box">
                Нажмите кнопку ниже, чтобы получить задание.
            </div>
           
            <div id="loadingIndicator" class="loader"></div>

            <div id="rewardDisplay" class="reward-box">
                <!-- Здесь будет награда -->
            </div>

            <div>
                <button id="btnGetTask" onclick="generateTask()">Получить задание</button>
                <button id="btnCompleteTask" class="btn-complete" onclick="completeTask()">Я выполнил(а) задание!</button>
            </div>
        </div>

        <script>
            // Массив с заданиями. Можете добавлять или изменять их здесь.
            const tasks = [
                "Написать 3 новых сообщения в игровых темах.",
                "Создать новую тему для обсуждения во флудилке.",
                "Оставить развернутый комментарий в профиле случайного пользователя.",
                "Написать пост объемом не менее 1500 символов.",
                "Поучаствовать в форумной игре (например, в 'Ассоциации').",
                "Заполнить или обновить анкету своего персонажа.",
                "Пригласить друга зарегистрироваться на форуме.",
                "Оценить 5 последних постов других игроков.",
                "Написать отзыв о форуме в специальной теме.",
                "Сменить аватар на тематический (праздничный, сезонный)."
            ];

            // Массив с наградами. Можете добавлять или изменять их здесь.
            const rewards = [
                "🏆 +100 очков репутации",
                "💰 500 золотых монет на счет",
                "✨ Уникальная медаль 'Счастливчик'",
                "🎨 Право на бесплатную смену ника",
                "💎 VIP-статус на 3 дня",
                "🎁 Секретный подарок от Администрации",
                "⭐ +50 очков опыта",
                "🛡️ Иммунитет к бану на неделю (шутка, но может быть!)",
                "📜 Индивидуальное звание под аватаром",
                "💸 Удвоение опыта за следующий пост"
            ];

            // Получаем элементы со страницы для взаимодействия с ними
            const taskDisplay = document.getElementById('taskDisplay');
            const rewardDisplay = document.getElementById('rewardDisplay');
            const btnGetTask = document.getElementById('btnGetTask');
            const btnCompleteTask = document.getElementById('btnCompleteTask');
            const loadingIndicator = document.getElementById('loadingIndicator');

            // Переменная для хранения текущего состояния
            let isTaskActive = false;
            let currentTask = ""; // Добавили переменную для хранения текущего задания

            // Функция для получения случайного элемента из массива
            function getRandomItem(array) {
                const randomIndex = Math.floor(Math.random() * array.length);
                return array[randomIndex];
            }

            // Функция, которая срабатывает при нажатии на "Получить задание"
            function generateTask() {
                if (isTaskActive) return; // Защита от повторного нажатия, если задание уже получено

                // Анимация или индикация загрузки (опционально, для эффекта)
                taskDisplay.style.opacity = 0.5;
               
                setTimeout(() => {
                    currentTask = getRandomItem(tasks); // Сохраняем задание
                    taskDisplay.innerHTML = `<strong>Ваше задание:</strong><br><br>${currentTask}`;
                    taskDisplay.style.opacity = 1;
                   
                    // Меняем состояние кнопок
                    btnGetTask.style.display = 'none';
                    btnCompleteTask.style.display = 'inline-block';
                   
                    // Скрываем блок награды, если он был показан ранее
                    rewardDisplay.style.display = 'none';
                    rewardDisplay.classList.remove('success');
                   
                    isTaskActive = true;
                }, 500); // Небольшая задержка для имитации "выбора"
            }

            // Функция, которая срабатывает при нажатии на "Я выполнил(а) задание!"
            function completeTask() {
                if (!isTaskActive) return;

                // Блокируем кнопку, чтобы не нажимали дважды
                btnCompleteTask.disabled = true;
                btnCompleteTask.innerText = "Проверка...";
                taskDisplay.style.display = 'none'; // Скрываем задание
                loadingIndicator.style.display = 'block'; // Показываем лоадер

                // Имитация процесса проверки модератором или сервером (задержка 2 секунды)
                setTimeout(() => {
                    loadingIndicator.style.display = 'none'; // Скрываем лоадер
                   
                    // Выбираем случайную награду
                    const randomReward = getRandomItem(rewards);
                   
                    // Формируем красивый блок с результатом, обернутый в [html]
                    const bbCodeResult = `[html]<div style="background:#eafaf1; border:2px solid #2ecc71; padding:15px; border-radius:8px; text-align:center; font-family:sans-serif; color:#2c3e50; margin: 10px 0;">
                        <h3 style="margin:0 0 10px 0; color:#27ae60;">Лотерея выполнена!</h3>
                        <p style="margin:5px 0;"><b>Задание:</b> ${currentTask}</p>
                        <p style="margin:5px 0;"><b>Награда:</b> <span style="font-size:1.1em;">${randomReward}</span></p>
                    </div>[/html]`;

                    // Пытаемся вставить результат в форму ответа Rusff
                    let inserted = false;
                    if (typeof insert === 'function') {
                        // Используем стандартную функцию Rusff для вставки BB-кодов
                        insert(bbCodeResult);
                        inserted = true;
                    } else {
                        // Либо ищем само поле ответа напрямую
                        const replyBox = document.getElementById('main-reply');
                        if (replyBox) {
                            replyBox.value += (replyBox.value ? '\n' : '') + bbCodeResult;
                            inserted = true;
                        }
                    }

                    // Отображаем награду
                    rewardDisplay.style.display = 'flex';
                    rewardDisplay.style.flexDirection = 'column'; // Выстраиваем элементы в колонку
                    rewardDisplay.classList.add('success');
                   
                    if (inserted) {
                        rewardDisplay.innerHTML = `Поздравляем! Задание выполнено!<br><br><strong>Ваша награда:</strong><br>${randomReward}<br><br><span style="font-size: 0.85em; color: #27ae60;">✓ Код с результатом автоматически добавлен в форму ответа!</span>`;
                    } else {
                        // Если поля ответа нет на текущей странице, даем возможность скопировать код
                        rewardDisplay.innerHTML = `Поздравляем! Задание выполнено!<br><br><strong>Ваша награда:</strong><br>${randomReward}<br><br><span style="font-size: 0.85em; color: #e67e22;">Скопируйте код ниже и вставьте его в ваше сообщение:</span><textarea onclick="this.select()" style="width:100%; height:80px; margin-top:10px; padding:5px; font-family:monospace; font-size:12px; border:1px solid #bdc3c7; border-radius:4px; resize:vertical;">${bbCodeResult}</textarea>`;
                    }
                   
                    // Возвращаем кнопки в исходное состояние (или можно оставить так до обновления страницы)
                    // Для цикличной игры раскомментируйте строки ниже:
                    /*
                    btnGetTask.style.display = 'inline-block';
                    btnGetTask.innerText = 'Получить новое задание';
                    btnCompleteTask.style.display = 'none';
                    btnCompleteTask.disabled = false;
                    btnCompleteTask.innerText = 'Я выполнил(а) задание!';
                    isTaskActive = false;
                    taskDisplay.style.display = 'flex'; // Возвращаем блок задания (пустой)
                    taskDisplay.innerHTML = "Нажмите кнопку ниже, чтобы получить новое задание.";
                    */
                   
                   // В текущем виде скрипт требует перезагрузки страницы для новой игры
                   btnCompleteTask.style.display = 'none';
               
               // Добавляем кнопку "Сыграть еще раз" вместо исходных
               const btnPlayAgain = document.createElement('button');
               btnPlayAgain.innerText = "Сыграть еще раз";
               btnPlayAgain.onclick = function() {
                   // Для форума просто сбрасываем виджет без перезагрузки страницы
                   btnCompleteTask.disabled = false;
                   btnCompleteTask.innerText = "Я выполнил(а) задание!";
                   btnCompleteTask.style.display = 'none';
                   btnGetTask.style.display = 'inline-block';
                   taskDisplay.style.display = 'flex';
                   taskDisplay.innerHTML = 'Нажмите кнопку ниже, чтобы получить задание.';
                   rewardDisplay.style.display = 'none';
                   rewardDisplay.classList.remove('success');
                   isTaskActive = false;
                   btnPlayAgain.remove();
               };
               document.querySelector('.lottery-container div:last-child').appendChild(btnPlayAgain);

            }, 2000); // 2000 миллисекунд = 2 секунды задержки
        }
    </script>
    </div>[/html]


    Вы здесь » Test » Новый форум » админка счетчика постов


    Рейтинг форумов | Создать форум бесплатно