Welcome to Code Forum!

Join a community that supports you and your coding journey from day one. We strive to be a friendly, supportive community that empowers everyone to be better developers. By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • Guest, before posting your code please take these rules into consideration:
    • It is required to use our BBCode feature to display your code. While within the editor click < / > or >_ and place your code within the BB Code prompt. This helps others with finding a solution by making it easier to read and easier to copy.
    • You can also use markdown to share your code. When using markdown your code will be automatically converted to BBCode. For help with markdown check out the markdown guide.
    • Don't share a wall of code. All we want is the problem area, the code related to your issue.

    GIF shows where to locate </> in the thread and or post editor toolbar.
    To learn more about how to use our BBCode feature, review our "How to post your code into threads" here.

    Thank you, Code Forum.

JavaScript Help with a code

Kingston007

New Coder
Hello everyone! I currently need help with a simple JavaScript which is used for another forum.
In my code I have a button array, which looks like this —
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.
I would like to do a following thing; Create a group of buttons, clicking on a particular group gives me access to secondary response buttons .
Would really appreciate any help <3

Code -
JavaScript:
// ==UserScript==
// @name         Forum Script for GA/ZGA
// @namespace    https://forum.blackrussia.online
// @version      3.3
// @description  my skills
// @author       Kingston007
// @match        https://forum.blackrussia.online/index.php?threads/*
// @include      https://forum.blackrussia.online/index.php?threads/
// @icon         https://icons.iconarchive.com/icons/aha-soft/iron-man/48/Ironman-Mask-3-Old-icon.png
// @grant        none
// @license      MIT
// ==/UserScript==

(async function () {
    `use strict`;
    const UNACCEPT_PREFIX = 4; // Prefix that will be set when thread closes
    const ACCEPT_PREFIX = 8; // Prefix that will be set when thread accepted
    const PIN_PREFIX = 2; // Prefix that will be set when thread pins
    const COMMAND_PREFIX = 10; // Prefix that will be set when thread send to project team
    const WATCHED_PREFIX = 9;
    const CLOSE_PREFIX = 7;
    const SPECIAL_PREFIX = 11;
    const GA_PREFIX = 12;
     const TECH_PREFIX = 13;
    const data = await getThreadData(),
        greeting = data.greeting,
        user = data.user;
    const buttons = [
        {
            title: `Приветствие`,
            content:
                `[SIZE=4][FONT=georgia][CENTER] ${greeting}, уважаемый(ая)${user.mention}![/CENTER]<br>` +
                `[CENTER]      [/CENTER][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        },
        {
            title: `Обжалования возврат`,
        content:
        `[SIZE=4][FONT=georgia][CENTER] ${greeting}, уважаемый(ая)${user.mention}![/CENTER]<br>` +
        `[CENTER]      Аккаунт будет разблокирован.<br><br>`+
          `[CENTER] У @ 12 часов что бы подтвердить возврат имущество. В противном случае аккаунт будет заблокирован вновь.<br><br>`+
        `[CENTER] [COLOR=orange] На рассмотрении.<br>`+
          `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,

    },

    { title: `ФА тема`,
    content: `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
    `[CENTER] Проверив ваш форумный аккаунт @ , я не обнаружил написания жалобы на игрока с вашего форумного аккаунта.<br>`+
    `[CENTER] Получаете штрафной балл на форумный аккаунт за попытку обмана администрации.<br>`+
    `[CENTER] [COLOR=red] Отказано,закрыто. [/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
    `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
    prefix: UNACCEPT_PREFIX,
    status: false,
},

        {
            title: `Нету нарушение`,
            content:`[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
            `[CENTER] Исходя из выше приложенных доказательств,нарушение со стороны администратора - не имееться!<br>`+
            `[CENTER] [COLOR=red]Отказано,закрыто.[/COLOR] [/CENTER][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix: UNACCEPT_PREFIX,
            status: false,
        },
        {
            title: `Некорректно работает док-ва`,
            content: `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
            `[CENTER] Доступ к вашим доказательствам работает некорректно, тем самым просмотреть их — невозможно<br><br>`+
              `[CENTER] [COLOR=red]Отказано,закрыто.[/COLOR] [/CENTER][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix: UNACCEPT_PREFIX,
            status: false,
 },
        {
      title: `ЖБ от 3 лица`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Жалоба создана от третьего лица.[/CENTER]<br><br>" +
        `[CENTER]Жалоба не подлежит рассмотрению.<br><br>`+
        `[COLOR=red]Отказано,закрыто![/COLOR] [/CENTER][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: UNACCEPT_PREFIX,
      status: false,
    },
        {
            title: `Недостаточно док-вы`,
            content:`[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
            `[CENTER] Недостаточно доказательств, которые подтверждают нарушение администратора.<br>`+
            ` [CENTER][COLOR=red] Отказано,закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix: UNACCEPT_PREFIX,
            status: false,
        },
    {
      title: `Отправить На рассмотрении.`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Ваша жалоба взята на рассмотрение. Ожидайте, пожалуйста, ответа от администрации и не нужно создавать копии этой темы.[/CENTER]<br><br>" +
        `[CENTER]Ожидайте ответа.[/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: PIN_PREFIX,
      status: true,
    },
        {
            title: `Правила раздела`,
            content:`[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
            `[CENTER]Пожалуйста, убедительная просьба, ознакомится с назначением данного раздела в котором Вы создали тему, так как ваш запрос никоим образом не относится к предназначению данного раздела.[/CENTER]`+
            `[CENTER]Отказано, закрыто.[/CENTER][/FONT]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix: UNACCEPT_PREFIX,
            status:false,
        },
        {
            title: `Окно бана`,
            content: `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
            `[CENTER]Пожалуйста,создайте новую тему и прикрепите скриншот табло при входе в игру.<br>`+
            `[CENTER] [COLOR=red] Отказано,закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia]Пример: [URL='https://yapx.ru/v/PnPvS'](Кликабельно)[/URL][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix: UNACCEPT_PREFIX,
            status:false,
        },
    {
      title: `Жалоба одобрена в сторону игрока`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Ваша жалоба была [COLOR=lightgreen] одобрена[/COLOR] и будет проведена беседа с администратором.<br>Ваше наказание будет снято.[/CENTER]<br>" +
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: ACCEPT_PREFIX,
      status: false,
    },
    {
      title: `Админ прав`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Проверив доказательства администратора, было принято решение, что наказание выдано верно.[/CENTER]<br><br>" +
        `[CENTER[COLOR=red] Закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: CLOSE_PREFIX,
      status: false,
    },
    {
      title: `Жалоба не по форме`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Жалоба составлена не по форме. Внимательно прочитайте правила составления жалобы, которые закреплены в этом разделе. <br><br>" +
        `[CENTER][COLOR=red]Отказано, закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: CLOSE_PREFIX,
      status: false,
    },
    {
      title: `В раздел жб на ГА`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Если Вы не согласны с решением главной администрации, то Вам в этот раздел - https://forum.blackrussia.online/index.php?forums/%D0%96%D0%B0%D0%BB%D0%BE%D0%B1%D1%8B-%D0%BD%D0%B0-%D0%93%D0%90-%D0%97%D0%93%D0%90.489/<br><br>" +
        `[CENTER][COLOR=red]Отказано, закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: CLOSE_PREFIX,
      status: false,
    },

        {
            title: `В раздел обж`,
            content:`[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
            `[CENTER]Пожалуйста обратитесь в раздел - [URL='https://forum.blackrussia.online/index.php?forums/%D0%9E%D0%B1%D0%B6%D0%B0%D0%BB%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%B8%D0%B9.471/']Обжалование (кликабельно)[/URL]<br>`+
            `[CENTER] [COLOR=red] Отказано,закрыто. [/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix: UNACCEPT_PREFIX,
            status: false,
        },


         {
            title: `ОБЖ нонрп обман`,
            content:`[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
             `[CENTER] Переговорите с человеком который написал на вас жалобу, если он даст согласия на ваш разбан с условиям что вы вернете ему обманутое имущество.<br>`+
             `[CENTER] В том случае напишите повторное обжалования, в котором игрок напишет свое согласия. <br><br>`+
  `[CENTER] [COLOR=red] Отказано,закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
            `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix: UNACCEPT_PREFIX,
            status: false,
         },

    {
      title: `Обжалованию не подлежит`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Данное наказание не подлежит обжалованию.<br><br>" +
        `[CENTER][COLOR=red] Отказано, закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: CLOSE_PREFIX,
      status: false,
    },
    {
      title: `Обжалование снято`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Ваше обжалование [COLOR=lightgreen] одобрено[/COLOR] и ваше наказание будет полностью снято.<br><br>" +
        `[CENTER][COLOR=red] Закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: ACCEPT_PREFIX,
      status: false,
    },
    {
      title: `Обжалование до минималки`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Ваше обжалование было рассмотрено и принято решение о сокращении вашего наказания до минимальных мер.<br><br>" +
        `[CENTER[COLOR=red]Закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: ACCEPT_PREFIX,
      status: false,
    },
    {
      title: `Уже есть мин. наказание`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Вам итак выдано минимальное наказание за нарушение.<br><br>" +
        `[CENTER][COLOR=red]Закрыто.[/COLOR][/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][SIZE=4][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: CLOSE_PREFIX,
      status: false,
    },
    {
      title: `Обжалование не по форме`,
      content:
`[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Обжалование составлено не по форме. Внимательно прочитайте правила составления обжалования, которые закреплены в этом разделе.<br><br>" +
        `[CENTER][COLOR=red]Закрыто.[/COLOR] [/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: CLOSE_PREFIX,
      status: false,
    },
        {
            title: `Обж отказано`,
            content: ` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
            `[CENTER] В обжалование отказано.<br><br>`+
            `[CENTER] Срок вашего наказания снижен не будет.<br><br>`+
            `[CENTER] [COLOR=red] Отказано,закрыто![/COLOR] <br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix:UNACCEPT_PREFIX,
            status: false,
        },
         {
        title:` Наказание сократить на 30 дней`,
        content: ` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
        "[CENTER]Ваше обжалование было рассмотрено и принято решение о сокращении вашего наказания на 30 дней.<br><br>" +
        `[SIZE=4][FONT=georgia][CENTER][COLOR=red]  Закрытo. [/COLOR]<br><br>`+
        `[SIZE=4][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: ACCEPT_PREFIX,
        status: false,
    },
    {
      title: `Направить в раздел жб на адм`,
      content:
        `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
        "[CENTER]Внимательно ознакомившись с вашим обжалованием, было решено, что вам нужно обратиться в раздел жалоб на администрацию.<br><br>" +
        `[CENTER]Отказано.[/CENTER][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
      prefix: UNACCEPT_PREFIX,
      status: false,
    },
    {
        title: `Наказание по ошибке`,
        content: ` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
        "В следствие беседы с администратором, было выяснено, наказание было выдано по ошибке.С администратором будет проведена профилактическая беседа. Наказание будет снято.[/FONT][/SIZE] <br><br>"+
        `[COLOR=lightgreen][SIZE=5][FONT=georgia]Одобрено,[/FONT][/SIZE][/COLOR][COLOR=rgb(209, 72, 65)][SIZE=5][FONT=georgia][S]закрыто.[/S][/FONT][/SIZE][/COLOR][/CENTER]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix:ACCEPT_PREFIX,
        status:false,
    },
    {
        title: `IP ban`,
        content: `[CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
        `[CENTER] Попробуйте сменить свою сеть.<br>`+
        `[CENTER] Если не получиться, напишите обжалования вновь.<br>`+
        `[COLOR=red]Закрыто![/COLOR]<br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: UNACCEPT_PREFIX,
        status: false,
    },

    {
        title: `Опра в соц.сети`,
        content:` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
        "Пожалуйста внимательно прочитайте тему «[URL=`https://forum.blackrussia.online/index.php?threads/%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0-%D0%BF%D0%BE%D0%B4%D0%B0%D1%87%D0%B8-%D0%B6%D0%B0%D0%BB%D0%BE%D0%B1-%D0%BD%D0%B0-%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8E.193340/`]Правила подачи жалоб на администрацию[/URL][SIZE=5][B]»<br><br>"+
        "И обратите своё внимание, на данный пункт правил —[/B][/SIZE][/FONT][/SIZE][SIZE=4][FONT=georgia][QUOTE]3.6. Прикрепление доказательств обязательно.Примечание: загрузка доказательств в соц. сети (ВКонтакте, instagram) запрещается, доказательства должны быть загружены на фото/видео хостинги (YouTube, Япикс, imgur).[/QUOTE][/FONT][QUOTE][/quote][/SIZE][QUOTE][/QUOTE]"+
        `[SIZE=4][FONT=georgia][COLOR=red] Отказано,[S] закрыто.[/COLOR][/S][/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: UNACCEPT_PREFIX,
        status: false,

    },
    {
        title: ` 24 часа `,
        content: `[CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
       " С момента выдачи наказание прошло более 24х часов, жалоба не подлежит рассмотрению.<br><br>"+
        `[COLOR=red] Отказано, закрыто.[/COLOR][/FONT][/SIZE][/CENTER]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: UNACCEPT_PREFIX,
        status: false,
    },

        {
            title: `Команде проекта`,
            content: ` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
            `[CENTER] Ваша жалоба передана Команде Проекта.<br><br>`+
            `[CENTER] Ожидайте их ответа, не надо создавать копии данной темы<br><br>`+
            `[CENTER] На рассмотрении.`,
            prefix: COMMAND_PREFIX,
            status: true,
        },
    {
        title: `Special ADMIN`,
        content: ` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
        "Ваше обращение передано - Специальному Администратору. @Sander_Kligan [/FONT] [COLOR=rgb(251, 160, 38)][FONT=georgia]<br>"+
        `[COLOR=red]На рассмотрении.. [/FONT][/COLOR][/SIZE][/CENTER]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: SPECIAL_PREFIX,
        status: true,
    },
        
    {
        title: `Передано ГА`,
        content:
          `[SIZE=4][FONT=georgia][CENTER]${greeting}, уважаемый(ая)${user.mention}[/CENTER]<br><br>` +
          "[CENTER]Ваша жалоба будет передана Главному Администратору На рассмотрении..<br><br>"+
          `[CENTER][COLOR=red] На рассмотрении.[/COLOR]<br><br>`+
          `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: GA_PREFIX,
        status: true,
    },

    {
        title: `Проинструктировать`,
        content:` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
        `[SIZE=4][FONT=georgia]Благодарим за ваше обращение!  Администратор будет проинструктирован.<br><br>`+
        `[COLOR=lightgreen] Одобрено[/COLOR],закрыто.[/FONT][/SIZE]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: ACCEPT_PREFIX,
        status: false,
    },

    {
        title: `Techinal Specialist`,
        content: `[CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
        `Ваша жалоба была передана техническому специалисту сервера<br><br>`+
        ` [COLOR=orange]На рассмотрении..[/COLOR]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: TECH_PREFIX,
        status:true,
    },
    {
        title: `Дублирование`,
        content:` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
        `Напоминаю, за дублирование тем ваш форумный аккаунт может быть заблокирован<br><br>`+
        `[COLOR=red]Отказано,закрыто[/COLOR]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: UNACCEPT_PREFIX,
        status:false,
    },
    {
      title: `ЖБ на техов`,
      content: ` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
       `[CENTER] Ошиблись разделом!<br>`+
       `[CENTER] Напишите свою жалобу в раздел — [URL='https://forum.blackrussia.online/index.php?forums/%D0%96%D0%B0%D0%BB%D0%BE%D0%B1%D1%8B-%D0%BD%D0%B0-%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%BE%D0%B2.490/']Жалобы на технических специалистов.(кликабельно)[/URL].<br><br>`+
          `[CENTER][COLOR=red] Отказано,закрыто![/COLOR]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
        prefix: UNACCEPT_PREFIX,
        status: false,

    },
         {
            title: `В тех раздел`,
            content:  ` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
            `[CENTER] Пожалуйста составьте свою жалобу в "Техническом Разделе сервера"[URL='https://forum.blackrussia.online/index.php?forums/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB-black.488/'][SIZE=4][FONT=georgia](кликабельно)[/URL]<br><br>`+
            `[CENTER][COLOR=red] Отказано,закрыто![/COLOR]<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
             prefix: UNACCEPT_PREFIX,
        status: false,
     },
 {
            title: `Админ ПСЖ`,
            content:` [CENTER][SIZE=5][FONT=georgia]${greeting}, уважаемый(ая)${user.mention} <br><br>`+
            `[CENTER] Администратор был снят/ушел по собстевенному желанию.<br>`+
            `[CENTER] Ваше наказание будет снято.<br><br>`+
             `[CENTER] [COLOR=lightgreen] Рассмотрено.<br><br>`+
        `[SIZE=5][FONT=georgia][CENTER][COLOR=black] Приятной игры и времяпровождение  на сервере BLACK (10)[/COLOR][/FONT][/SIZE][/CENTER]`,
            prefix: WATCHED_PREFIX,
            status:false,
        },
        

    ];

    $(document).ready(() => {
        // Загрузка скрипта для обработки шаблонов
        $(`body`).append(`<script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script>`);

        // Добавление кнопок при загрузке страницы
        addButton(`На рассмотрении.`, `pin`);
        addButton(`Одобрено`, `accepted`);
        addButton(`Отказано`, `unaccept`);
        addButton(`Команде Проекта`, `teamProject`);
        addButton(`Рассмотрено`, `watched`);
        addButton(`Закрыто`, `closed`);
        addButton (`Спец АДМ`, `specialAdmin`);
        addButton (`ГА`, `mainAdmin`);
        addButton(`Тех.Спец`, `techspec`);
        addButton(`Открыть/Закрыть`, `statusTheme`);
        addButton(`Ответы`, `selectAnswer`);





        // Поиск информации о теме
        const threadData = getThreadData();

        $(`button#pin`).click(() => editThreadData(PIN_PREFIX, true));
        $(`button#accepted`).click(() => editThreadData(ACCEPT_PREFIX, false));
        $(`button#teamProject`).click(() => editThreadData(COMMAND_PREFIX, true));
        $(`button#unaccept`).click(() => editThreadData(UNACCEPT_PREFIX, false));
        $(`button#watched`).click(() => editThreadData(WATCHED_PREFIX, false));
$(`button#closed`).click(() => editThreadData(CLOSE_PREFIX, false));
         $(`button#specialAdmin`).click(() => editThreadData(SPECIAL_PREFIX, true));
$(`button#mainAdmin`).click(() => editThreadData(GA_PREFIX, true));
$(`button#techspec`).click(() => editThreadData(TECH_PREFIX , true));

$(`button#statusTheme`).click(() => {
            const threadTitle = $(`.p-title-value`)[0].lastChild.textContent;

            let status = threadData.theme_status
            if ( status == false) status = 1
            else status = 0

            fetch(`${document.URL}edit`, {
                method: `POST`,
                body: getFormData({
                    title: threadTitle,
                    discussion_open: status,
                    _xfToken: XF.config.csrf,
                    _xfRequestUri: document.URL.split(XF.config.url.fullBase)[1],
                    _xfWithData: 1,
                    _xfResponseType: `json`,
                }),
            }).then(() => location.reload());
        });

        $(`button#selectAnswer`).click(() => {
            XF.alert(buttonsMarkup(buttons), null, `Выберите ответ:`);
            buttons.forEach((btn, id) => {
                if (id > 2) {
                    $(`button#answers-${id}`).click(() => pasteContent(id, threadData, true));
                } else {
                    $(`button#answers-${id}`).click(() => pasteContent(id, threadData, false));
                }
            });
        });
    });

    function addButton(name, id) {
        $(`.button--icon--reply`).before(
            `<button type="button" class="button rippleButton" id="${id}" style="margin: 3px;">${name}</button>`,
        );
    }

    function buttonsMarkup(buttons) {

        return `<div class="select_answer">${buttons
            .map(
                (btn, i) =>
                    `<button id="answers-${i}" class="button--primary button ` +
                    `rippleButton" style="margin:5px"><span class="button-text">${btn.title}</span></button>`,
            )
            .join(``)}</div>`;
    }



    function pasteContent(id, data = {}, send = false) {
        const template = Handlebars.compile(buttons[id].content);
        if ($(`.fr-element.fr-view p`).text() === ``) $(`.fr-element.fr-view p`).empty();

        $(`span.fr-placeholder`).empty();
        $(`div.fr-element.fr-view p`).append(template(data));
        $(`a.overlay-titleCloser`).trigger(`click`);

        if (send == true) {
            editThreadData(buttons[id].prefix, buttons[id].status);
            $(`.button--icon.button--icon--reply.rippleButton`).trigger(`click`);
        }
    }

    async function getThreadData() {
        const authorID = $(`a.username`)[0].attributes[`data-user-id`].nodeValue;
        const authorName = $(`a.username`).html();
        const theme_status = $(`a.discussion_open`).html();
        const hours = new Date().getHours();
        const greeting = 4 < hours && hours <= 11
            ? `Доброе утро`
            : 11 < hours && hours <= 15
                ? `Добрый день`
                : 15 < hours && hours <= 21
                    ? `Добрый вечер`
                    : `Доброй ночи`

        return {
            user: {
                id: authorID,
                name: authorName,
                mention: `[USER=${authorID}]${authorName}[/USER]`,
            },
            theme_status,
            greeting: greeting
        };
    }

    function editThreadData(prefix, pin = false) {
        // Получаем заголовок темы, так как он необходим при запросе
        const threadTitle = $(`.p-title-value`)[0].lastChild.textContent;

        if (pin == false) {
            fetch(`${document.URL}edit`, {
                method: `POST`,
                body: getFormData({
                    prefix_id: prefix,
                    title: threadTitle,
                    _xfToken: XF.config.csrf,
                    _xfRequestUri: document.URL.split(XF.config.url.fullBase)[1],
                    _xfWithData: 1,
                    _xfResponseType: `json`,
                }),
            }).then(() => location.reload());
        }
        if (pin == true) {
            fetch(`${document.URL}edit`, {
                method: `POST`,
                body: getFormData({
                    prefix_id: prefix,
                    title: threadTitle,
                    sticky: 1,
                    _xfToken: XF.config.csrf,
                    _xfRequestUri: document.URL.split(XF.config.url.fullBase)[1],
                    _xfWithData: 1,
                    _xfResponseType: `json`,
                }),
            }).then(() => location.reload());
        }
    }

    function getFormData(data) {
        const formData = new FormData();
        Object.entries(data).forEach(i => formData.append(i[0], i[1]));
        return formData;
    }
})();
 
The proper way to do this is with a listener, but being lazy I did not try to work that out.
In the following code, I only used three buttons. The alerts in the switch function should be where you add the code for the next set of buttons. This could be from an array or from an ajax request.
Code:
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <title>Title</title>
<style>

</style>
</head>
<body>
<div id="myDiv">
    <input type="button" value="Button 1" onclick="doAction('Button 1');">
    <input type="button" value="Button 2" onclick="doAction('Button 2');">
    <input type="button" value="Button 3" onclick="doAction('Button 3');">
</div>
<script>
function doAction(what){
    switch(what){
        case 'Button 1':
            alert('Button 1');
        break;
        case 'Button 2':
            alert('Button 2');
        break;
        case 'Button 3':
            alert('Button 3');
        break;
        default:
        break;
    }
};
</script>
</body>
</html>
 
The proper way to do this is with a listener, but being lazy I did not try to work that out.
In the following code, I only used three buttons. The alerts in the switch function should be where you add the code for the next set of buttons. This could be from an array or from an ajax request.
Code:
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <title>Title</title>
<style>

</style>
</head>
<body>
<div id="myDiv">
    <input type="button" value="Button 1" onclick="doAction('Button 1');">
    <input type="button" value="Button 2" onclick="doAction('Button 2');">
    <input type="button" value="Button 3" onclick="doAction('Button 3');">
</div>
<script>
function doAction(what){
    switch(what){
        case 'Button 1':
            alert('Button 1');
        break;
        case 'Button 2':
            alert('Button 2');
        break;
        case 'Button 3':
            alert('Button 3');
        break;
        default:
        break;
    }
};
</script>
</body>
</html>
I am using "Tampermonkey" for the code, and it supports only Java. If its not hard for you, can you please insert your code into mine. Because honestly I dont understand how to do it.
 
Last edited:

Buy us a coffee!

Buy me a coffee.
Back
Top Bottom