Forum Mod Quick Reply Panel (Full Set)

Панель кнопок для вставки готовых ответов в IPB-редактор

当前为 2025-08-15 提交的版本,查看 最新版本

// ==UserScript==
// @name         Forum Mod Quick Reply Panel (Full Set)
// @namespace    http://tampermonkey.net/
// @version      2.0
// @description  Панель кнопок для вставки готовых ответов в IPB-редактор
// @match        https://forum.blackrussia.online/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const buttons = [
        // Жалобы на игроков
        {text: "Жалоба на игрока — Одобрено ✅", color: "#d4edda", border: "#28a745", message: `
<div style="border:3px dashed #28a745;padding:10px;background:#d4edda;">
    <center>
        <img src="https://media.giphy.com/media/3oEjI6SIIHBdRxXI40/giphy.gif" height="80"><br>
        <b style="color:#155724;font-size:18px;">Жалоба одобрена</b><br>
        Нарушитель получит наказание в ближайшее время.
    </center>
</div>`},

        {text: "Жалоба на игрока — Отказано ❌", color: "#f8d7da", border: "#dc3545", message: `
<div style="border:3px dashed #dc3545;padding:10px;background:#f8d7da;">
    <center>
        <img src="https://media.giphy.com/media/jnP3zrceJq2Wg/giphy.gif" height="80"><br>
        <b style="color:#721c24;font-size:18px;">Жалоба отклонена</b><br>
        Недостаточно доказательств / нарушений нет.
    </center>
</div>`},

        // Жалобы на админов
        {text: "Жалоба на админа — Одобрено ✅", color: "#fff3cd", border: "#856404", message: `
<div style="border:3px dashed #856404;padding:10px;background:#fff3cd;">
    <center>
        <img src="https://media.giphy.com/media/l0HlHFRbmaZtBRhXG/giphy.gif" height="80"><br>
        <b style="color:#856404;font-size:18px;">Жалоба одобрена</b><br>
        Администратор получит наказание.
    </center>
</div>`},

        {text: "Жалоба на админа — Отказано ❌", color: "#e2e3e5", border: "#6c757d", message: `
<div style="border:3px dashed #6c757d;padding:10px;background:#e2e3e5;">
    <center>
        <img src="https://media.giphy.com/media/l0MYt5jPR6QX5pnqM/giphy.gif" height="80"><br>
        <b style="color:#383d41;font-size:18px;">Жалоба отклонена</b><br>
        Нарушений не выявлено.
    </center>
</div>`},

        // Жалобы на лидеров
        {text: "Жалоба на лидера — Одобрено ✅", color: "#cce5ff", border: "#004085", message: `
<div style="border:3px dashed #004085;padding:10px;background:#cce5ff;">
    <center>
        <img src="https://media.giphy.com/media/26AHONQ79FdWZhAI0/giphy.gif" height="80"><br>
        <b style="color:#004085;font-size:18px;">Жалоба одобрена</b><br>
        Лидер понесёт ответственность.
    </center>
</div>`},

        {text: "Жалоба на лидера — Отказано ❌", color: "#f8d7da", border: "#dc3545", message: `
<div style="border:3px dashed #dc3545;padding:10px;background:#f8d7da;">
    <center>
        <img src="https://media.giphy.com/media/26AHONQ79FdWZhAI0/giphy.gif" height="80"><br>
        <b style="color:#721c24;font-size:18px;">Жалоба отклонена</b><br>
        Доказательства не подтверждают нарушение.
    </center>
</div>`},

        // Обжалование наказаний
        {text: "Обжалование — Одобрено ✅", color: "#d4edda", border: "#28a745", message: `
<div style="border:3px dashed #28a745;padding:10px;background:#d4edda;">
    <center>
        <img src="https://media.giphy.com/media/111ebonMs90YLu/giphy.gif" height="80"><br>
        <b style="color:#155724;font-size:18px;">Обжалование удовлетворено</b><br>
        Наказание будет снято.
    </center>
</div>`},

        {text: "Обжалование — Отказано ❌", color: "#f8d7da", border: "#dc3545", message: `
<div style="border:3px dashed #dc3545;padding:10px;background:#f8d7da;">
    <center>
        <img src="https://media.giphy.com/media/jnP3zrceJq2Wg/giphy.gif" height="80"><br>
        <b style="color:#721c24;font-size:18px;">Обжалование отклонено</b><br>
        Наказание останется в силе.
    </center>
</div>`},
    ];

    function insertText(html) {
        const iframe = document.querySelector('.cke_wysiwyg_frame');
        if (iframe) {
            const editorDoc = iframe.contentDocument || iframe.contentWindow.document;
            editorDoc.execCommand('insertHTML', false, html);
        }
    }

    function addPanel() {
        const editorToolbar = document.querySelector('.ipsComposeArea_editor');
        if (editorToolbar && !document.querySelector('#quickReplyPanel')) {
            const container = document.createElement('div');
            container.id = "quickReplyPanel";
            container.style.margin = "10px 0";
            container.style.padding = "5px";
            container.style.border = "2px solid #ccc";
            container.style.background = "#f9f9f9";

            buttons.forEach(b => {
                const btn = document.createElement('button');
                btn.innerText = b.text;
                btn.style.margin = "2px";
                btn.style.padding = "5px 10px";
                btn.style.border = `1px solid ${b.border}`;
                btn.style.background = b.color;
                btn.style.cursor = "pointer";
                btn.onclick = e => {
                    e.preventDefault();
                    insertText(b.message);
                };
                container.appendChild(btn);
            });

            editorToolbar.parentNode.insertBefore(container, editorToolbar);
        }
    }

    setInterval(addPanel, 1500); // ждём появления редактора
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址