您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Добавляет кнопку "Шаблоны" в редактор на странице создания темы
// ==UserScript== // @name LZT_CreateThreadTemplatesButton // @namespace MeloniuM/LZT // @version 1.1 // @description Добавляет кнопку "Шаблоны" в редактор на странице создания темы // @match https://zelenka.guru/forums/*/create-thread // @match https://lolz.live/forums/*/create-thread // @grant none // ==/UserScript== (function () { 'use strict'; function ensureTemplatesBox(ed) { if ($("#ConversationTemplates").length) return; let parsed; try { parsed = JSON.parse(localStorage.getItem("conversation_templates") || "{}"); } catch (e) { console.error("Ошибка чтения conversation_templates", e); return; } if (!parsed.templates) return; const $box = $(` <div style="display: none"> <div id="ConversationTemplates" class="ConversationTemplates conversationTemplatesBox"> <div class="header"> <span class="title bold">Шаблоны</span> <div class="fl_r"> <a href="conversations/template" class="OverlayTrigger"><svg viewBox="0 0 24 24" width="16" height="16" stroke="rgb(214,214,214)" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg></a> </div> </div> <div id="ConversationTemplateList" class="templateList"> ${parsed.templates} </div> <div class="NoTemplates noConversationTemplates muted hidden"> Вы пока что не добавили ни одного шаблона </div> </div> </div> `); $("body").append($box); } function ensureButton(ed) { if (ed.$tb.find('[data-cmd="lztTemplate"]').length) return; const $smilieBtn = ed.$tb.find('[data-cmd="xfSmilie"]'); const $tplBtn = $(`<button type="button" class="fr-command fr-btn" data-cmd="lztTemplate" title="Шаблоны"> <i class="fa fa-file-alt"></i> </button>`); if ($smilieBtn.length) { $smilieBtn.after($tplBtn.get(0)); } else { ed.$tb.append($tplBtn); } $tplBtn.xfActivate(); const $templatesBox = $('#ConversationTemplates').clone().show(); if ($templatesBox.length) { $templatesBox.data('lzt-fe-ed', ed); $tplBtn.data('tippy-content', $templatesBox[0]); XenForo.tippy($tplBtn[0], { content: $templatesBox[0], onShown: function () { $templatesBox.xfActivate(); }, onShow() { ed.selection.save(); }, onHide() { ed.selection.restore(); } }, 'popup'); } } $(document).ready(() => { const editor = XenForo.editorStart && XenForo.editorStart.editor; if (!editor || !editor.ed) { return; } const ed = editor.ed; ensureTemplatesBox(ed); ensureButton(ed); }) })();