gemcross

Объявление

Лучший пост у Аполлона

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

Лучший эпизод: "Трудно, товарищи, верить в хорошее"

Ксейден и Гаррик
игроки
флудеры

Потерялся Кардан Гринбрайр, Король Эльфхейма

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

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


Вы здесь » gemcross » Тестовый форум » банк


банк

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

1

Банк Ролевой

Текущий баланс:

подача заявки на нужного персонажа

100
*

подача заявки в "хочу видеть"

50
*

            реклама нужного
           

100
*
           

            выкуп роли на месяц
           

200
*
           

            заявка в шапку
           

200
*
           

Код:

0

2

За какие заслуги:
» подача заявки в "хочу видеть": 1 * 50 = 50 джемов


123

    Общая сумма начисляемой валюты: 50 джемов
    Итоговая сумма в профиле: 300 джемов

0

3

За что получить джемы:
» подача заявки на нужного персонажа: 2 * 100 = 200 джемов


123
456

» подача заявки в "хочу видеть": 1 * 50 = 50 джемов

На что потратить джемы:
» реклама нужного: 2 * 100 = 200 джемов


963
524

Общая сумма начисляемой валюты: 50 джемов
Итоговая сумма в профиле: 300 джемов

0

4

[spoiler="тело поста"]

Код:

[/block]
[/block]

0

5

пост
Код:
[block=bank]
[block=bankHead]Банк Ролевой[/block]
[block=balanceField]Текущий баланс: [balance=currentBalance][/balance]
[/block]
[block=bankForm]
[block=bankTabs][tab=itemSave][label=itemSave]Получить[/label][tab=itemSpend][label=itemSpend]Потратить[/label][/block]
[block=bankItems]

[block=itemSave][checkbox=подача заявки на нужного персонажа]подача заявки на нужного персонажа[/checkbox][price]100[/price] * [number]0[/number][textarea=proofInput]Ссылка на подтверждение...[/textarea][/block]

[block=itemSave][checkbox=подача заявки в "хочу видеть"]подача заявки в "хочу видеть"[/checkbox][price]50[/price] * [number]0[/number][textarea=proofInput]Ссылка на подтверждение...[/textarea]
[/block]

[block=itemSpend]
            [checkbox=реклама нужного]реклама нужного[/checkbox]
            [price]100[/price] * [number]0[/number]
            [textarea=proofInput]Ссылка на заявку[/textarea]
[/block]

[block=itemSpend]
            [checkbox=заявка в шапку]выкуп роли на месяц[/checkbox]
            [price]200[/price] * [number]0[/number]
            [textarea=proofInput]имя персонажа и фандом[/textarea]
[/block]

[block=itemSpend]
            [checkbox=заявка в шапку]заявка в шапку[/checkbox]
            [price]200[/price] * [number]0[/number]
            [textarea=proofInput]имя персонажа и фандом[/textarea]
[/block]

[/block]

[button=generateButton]Рассчитать[/button]
ТУТ ПУСТОЙ КОД
[/block]
[/block]
bb коды

textarea[textarea.proofInput]:im
balance[input/id]:im
tab[input.tabButton/id]:sia
label[label/for]:ia
checkbox[input/value]:ia
price[div]:i
number[input]:i
button[button/id]:a

хтмл низ
Код:
<script type="text/javascript">/**
 * author: амбассадор кринжа
 * modification: dreamer
 * version: 2.1
 * status: test
**/

// Обёртка для всего скрипта
(() => {
    // Кэширование часто используемых селекторов
    const currentBalanceInput = document.getElementById('currentBalance');
    const generateButton = document.getElementById('generateButton');

    // Инициализация: установка баланса и скрытие элементов для действия "потратить"
    const init = () => {
        document.querySelectorAll('.bankTabs p').forEach(tabs => {
            tabs.classList.add('radio-group');
        });
        document.querySelectorAll('input.tabButton').forEach(input => {
            input.type = 'radio';
            input.name = 'action';
        });
        document.querySelectorAll('input.custom_tag_checkbox').forEach(input => {
            input.type = 'checkbox';
        });
        document.querySelectorAll('input.custom_tag_number').forEach(input => {
            input.type = 'number';
            input.value = 0;
        });
        if (typeof UserFld5 !== 'undefined') {
            currentBalanceInput.value = parseInt(UserFld5) || 0;
        } else {
            currentBalanceInput.value = 0;
        }
        document.querySelectorAll('.bankItems .itemSpend').forEach(itembank =>
            itembank.classList.add('hidden')
        );
        
        document.querySelector('input#itemSave').checked = true;
        
        document.querySelectorAll('textarea.proofInput').forEach(textarea => {
            const text = textarea.textContent.trim();
            if (text) {
                textarea.setAttribute('placeholder', text);
                textarea.textContent = '';
            }
});
    };

    // Установка глобальных обработчиков событий
    const setupEventListeners = () => {
        document.querySelectorAll('input[name="action"]').forEach(button => {
            // Вешаем обработчик на изменение
            button.addEventListener('change', function () {
                const action = button.id;
                document.querySelectorAll('.bankItems > *').forEach(itembank => {
                    itembank.classList.toggle('hidden');
                });
            });
        });
        
        document.addEventListener('change', e => {
        // Обработка чекбоксов: показываем/скрываем поле подтверждения и блокируем/разблокируем поле количества
            if (e.target.matches('.bankItems input[type="checkbox"]')) {
                const itembank = e.target.closest('.bankItems > div');
                const proofInput = itembank.querySelector('.resizable-textarea');
                const quantityInput = itembank.querySelector('input[type="number"]');
                proofInput.classList.toggle('visible', e.target.checked);
                quantityInput.disabled = !e.target.checked;
                if (!e.target.checked) {
                    quantityInput.value = 0;
                    proofInput.value = '';
                }
            }
        });

        //Обработка ввода в поле подтверждения (.proof-input)
        document.addEventListener('input', e => {
            if (e.target.matches('.proofInput')) {
                const proofInput = e.target;
                const itembank = proofInput.closest('.bankItems > div');
                const quantityInput = itembank.querySelector('input[type="number"]');

                // Подсчёт количества строк в поле подтверждения
                const lines = proofInput.value.split('\n').filter(line => line.trim() !== '').length;

                // Установка значения числового поля в зависимости от количества строк
                quantityInput.value = Math.max(1, lines); // Минимум 1
            }
        });

        generateButton.addEventListener('click', generateBBCode);
    };

    const generateBBCode = () => {
        let total = 0,
            detailsSave = '',
            detailsSpend = '';
        document.querySelectorAll('.bankItems input[type="checkbox"]:checked').forEach(checkbox => {
            const itembank = checkbox.closest('.bankItems > div');
            const quantity = parseInt(itembank.querySelector('input[type="number"]').value);
            const price = parseInt(itembank.querySelector('.custom_tag_price').textContent);
            const proof = itembank.querySelector('.proofInput').value.trim();
            const sum = quantity * price;
            
            // Основная строка с описанием
            const line = `» ${checkbox.value}: ${quantity} * ${price} = ${sum} джемов`;
            
            if (itembank.classList.contains('itemSave')) {
                total += sum;
                if (proof) {
                    detailsSave += `${line}\n[quote]\n[hr]\n${proof}[/quote]\n`;
                } else {
                    detailsSave += line + '\n';
                }
            } else {
                total -= sum;
                if (proof) {
                    detailsSpend += `${line}\n[quote]${proof}[/quote]\n`;
                } else {
                    detailsSpend += line + '\n';
                }
            }
        });
    
        const currentBalance = parseInt(currentBalanceInput.value) || 0;
        const finalAmount = currentBalance + total;
        let bbcode = '';
        
        if (detailsSave) {
            bbcode += `[b]За что получить джемы:[/b]\n${detailsSave}\n`;
        }
        
        if (detailsSpend) {
            bbcode += `[b]На что потратить джемы:[/b]\n${detailsSpend}\n`;
        }
    
        bbcode += `[b]Общая сумма начисляемой валюты:[/b] ${total} джемов \n[b]Итоговая сумма в профиле:[/b] ${finalAmount} джемов`;
    
        document.querySelector('.blockcode pre').textContent = bbcode;
    };

    init();
    setupEventListeners();
})();</script>

0


Вы здесь » gemcross » Тестовый форум » банк


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