Модификации шаблона accounts_updates

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
Честь - не слово, это путь к истинне
Активный
Регистрация
28 Дек 2023
Сообщения
416
если что на данном форуме не одобряется практика с ИИ
Кто это запретил?
так какая разница , что именно запрещено от ии сливать код или формулировку

в правиле написано, что запрещено публиковать ии , ты опубликовал код сгенерированный ии т.е ChatGPT
Большая - переписывайте правил где чётно написано что слив любых ресурсов которые были сгенерированны полностью при помощи ИИ-моделей а также Chat GPT.

Хотя мой код лишь один раз под генерации ИИ-Модели для исправления HTML
 
Заблокированный
Регистрация
26 Апр 2022
Сообщения
1,098
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Кто это запретил?
я и запретил если что, правило по моей идеи ввели
 
Честь - не слово, это путь к истинне
Активный
Регистрация
28 Дек 2023
Сообщения
416
Честь - не слово, это путь к истинне
Активный
Регистрация
28 Дек 2023
Сообщения
416
Заблокированный
Регистрация
26 Апр 2022
Сообщения
1,098
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
OFFTOP

Это лишь идея но ты мне не можешь запретить ты на форуме не имеешь не каких полномочий

поверь друг я располагаю большим чем ты думаешь
 
Честь - не слово, это путь к истинне
Активный
Регистрация
28 Дек 2023
Сообщения
416
поверь друг я располагаю большим чем ты думаешь
OFFTOP

Да молодец, я рад за тебя мне то что? Бояться теперь тебя? Прятаться по углам при ввиде тебя? Да ты мне не кто господе пугай своих друзей

Уже половину ресурсов в теме Python можно сносить потому что там есть вмешательства ИИ, удачи в удалении тем. Продолжать с тобой дискуссию дальше не имею смысла

 
Заблокированный
Регистрация
26 Апр 2022
Сообщения
1,098
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
OFFTOP

Да молодец, я рад за тебя мне то что? Бояться теперь тебя? Прятаться по углам при ввиде тебя? Да ты мне не кто господе пугай своих друзей

Уже половину ресурсов в теме Python можно сносить потому что там есть вмешательства ИИ, удачи в удалении тем. Продолжать с тобой дискуссию дальше не имею смысла

да меня твой питон не интересует, ты же вроде у нас "гуру хенфоро", вроде хочешь на кого-то, жалко не сбудется мечта
 
Честь - не слово, это путь к истинне
Активный
Регистрация
28 Дек 2023
Сообщения
416
да меня твой питон не интересует, ты же вроде у нас "гуру хенфоро", вроде хочешь на кого-то, жалко не сбудется мечта
OFFTOP

Увы даже не жалею об этом, чисто по фану падал потому что делать нечего. А свои мечты я ещё исполнил год назад, ну это так для справки

 
Заблокированный
Регистрация
26 Апр 2022
Сообщения
1,098
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
OFFTOP

Увы даже не жалею об этом, чисто по фану падал потому что делать нечего. А свои мечты я ещё исполнил год назад, ну это так для справки

самоуверенность губит
 
Честь - не слово, это путь к истинне
Активный
Регистрация
28 Дек 2023
Сообщения
416
самоуверенность губит
OFFTOP

Где ты увидел самоуверенность? Ахазахах. Ты думаешь, моя мечта была занять должность Редактора на Pawno-help.ru? Увы нет, я подал заявку лишь от того чтобы посмотреть что это и как устроено, не из-за мечты. Да и первое слово Жени дороже твоего, если он мне лично в вк напишет да без проблем пускай то ещё причину укажет которая прописана в правилах а не ту которую ему в личку сказали..

 
Пользователь
Регистрация
21 Янв 2023
Сообщения
291
OFFTOP

И что? Ну написан он на ИИ? Трагедия прям пипец, уже все через ии делают потому что он меньше ошибок совершает, ии это прогресс мира по этому не надо говорить о том что писать код на ии плохо. Если не хочешь не используй мне то что, другие будут использовать

OFFTOP

Все ?
Хм, наверное все юзают ИИ чтоб облегчить себе жизнь и вообще забить хуй на изучение хотя-бы базы.

Многие ее юзают онли из-за облегчения себе работы ( адаптация , убрать мусор и тп )

 
lspdfr insider ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Продавец
Регистрация
2 Ноя 2024
Сообщения
2,188
OFFTOP

Все ?
Хм, наверное все юзают ИИ чтоб облегчить себе жизнь и вообще забить хуй на изучение хотя-бы базы.

Многие ее юзают онли из-за облегчения себе работы ( адаптация , убрать мусор и тп )

OFFTOP

зенетани почему вы перестали сайты выпускать? запросы в нейронку закончились?

 
Пользователь
Регистрация
21 Янв 2023
Сообщения
291
OFFTOP

зенетани почему вы перестали сайты выпускать? запросы в нейронку закончились?

OFFTOP

Переживаешь что не сможешь взять сайт какой нибудь ?
Не переживай , премки имеются , но смысл от них щас ? Через них даже базу прогонять страшно , юзаю онли для адаптации и убрать мусор. Та и вообщем не принимаю заказы

 
Последнее редактирование:
Заблокированный
Регистрация
26 Апр 2022
Сообщения
1,098
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Да и первое слово Жени дороже твоего
OFFTOP

как же ты ошибаешься друг

 
Заблокированный
Регистрация
26 Апр 2022
Сообщения
1,098
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
причину укажет
OFFTOP


причина не знает что такое модификация шаблона и не умеет инклудить шаблоны

 
Честь - не слово, это путь к истинне
Активный
Регистрация
28 Дек 2023
Сообщения
416
UPD: 1.2

- Внесены изменения в дизайн модификации;
- Внёс все классы XF для обработки покупки
- Убран лишний мусор из кода который мешал полноценно работать
- Внесены изменения в проверку имеется ли платное повышение или нет
1000494954.jpg
1000494956.jpg

P.S Для самых одарённых людей изменения вносил лично я без использования ИИ!
HTML + CSS:
<xf:title>{{ phrase('account_upgrades') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:js src="xf/payment.js" min="1" />

<xf:css>
/* ============= ПЕРЕМЕННЫЕ ============= */
:root {
    --background: 220 15% 8%;
    --foreground: 0 0% 95%;
    --card: 220 15% 12%;
    --card-hover: 220 15% 14%;
    --border: 220 15% 20%;
    --muted: 220 15% 15%;
    --muted-foreground: 220 10% 60%;
    --premium-color: 330 74% 67%;
    --premium-shadow: 327 80% 51%;
    --upgrade: 160 84% 39%;
    --upgrade-foreground: 0 0% 100%;
    --prime: 270 80% 60%;
    --accent-glow: 0 0% 100% / 0.1;
}

/* ============= АНИМАЦИИ ============= */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes pulseGlow {
    0%, 100% {
        box-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
    }
    50% {
        box-shadow: 0 0 30px rgba(16, 185, 129, 0.8);
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translate3d(-50px, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes float {
    0%, 100% {
        transform: translateY(0px) rotate(0deg);
    }
    50% {
        transform: translateY(-20px) rotate(5deg);
    }
}

/* ============= ОСНОВНЫЕ СТИЛИ ============= */
.account-upgrades-container {
    position: relative;
    min-height: 100vh;
    background: hsl(var(--background));
    color: hsl(var(--foreground));
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    overflow: hidden;
}

.animated-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
}

.animated-background-overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 80%, rgba(16, 185, 129, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(168, 85, 247, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 40% 40%, rgba(232, 125, 203, 0.05) 0%, transparent 50%);
}

.glow-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    animation: float 8s ease-in-out infinite;
    opacity: 0.6;
}

.glow-orb-1 {
    width: 30rem;
    height: 30rem;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.3) 0%, rgba(16, 185, 129, 0.1) 50%, transparent 100%);
    top: 10%;
    left: 15%;
    animation-delay: 0s;
}

.glow-orb-2 {
    width: 25rem;
    height: 25rem;
    background: radial-gradient(circle, rgba(168, 85, 247, 0.25) 0%, rgba(168, 85, 247, 0.1) 50%, transparent 100%);
    top: 30%;
    right: 20%;
    animation-delay: 2s;
}

.glow-orb-3 {
    width: 20rem;
    height: 20rem;
    background: radial-gradient(circle, rgba(232, 125, 203, 0.2) 0%, rgba(232, 125, 203, 0.05) 50%, transparent 100%);
    bottom: 20%;
    left: 25%;
    animation-delay: 4s;
}

/* ============= VIP BADGE & PREMIUM TEXT ============= */
.vip-badge {
    margin-left: 5px;
    color: white;
    background: linear-gradient(135deg, #e87dcb, #d926a9, #e87dcb);
    background-size: 400% 400%;
    border-radius: 8px;
    border: none;
    padding: 6px 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0 6px -2px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.5px;
    animation: pulseGlow 2s ease-in-out infinite;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
    font-family: 'Segoe UI', sans-serif;
    box-shadow: 0 2px 8px rgba(217, 38, 169, 0.3);
}

.text-premium {
    color: #e87dcb;
    text-shadow: 0 0 10px rgba(217, 38, 169, 0.5);
    font-weight: 600;
}

.forum-banner-premium {
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: 14rem;
    margin: 0 auto;
    padding: 1rem 1.5rem;
    border-radius: 12px;
    border: 2px solid rgba(232, 125, 203, 0.3);
    background: linear-gradient(135deg, rgba(232, 125, 203, 0.9) 0%, rgba(217, 38, 169, 0.7) 100%);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), inset 0 2px 8px rgba(255, 255, 255, 0.2), 0 0 20px rgba(232, 125, 203, 0.3);
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    color: white;
    text-transform: uppercase;
    letter-spacing: 1px;
    animation: pulseGlow 3s ease-in-out infinite;
}

/* ============= КАРТОЧКИ ТАРИФОВ ============= */
.pricing-card {
    position: relative;
    overflow: hidden;
    border: 1px solid hsl(var(--border));
    background: linear-gradient(135deg, hsl(var(--card)) 0%, hsl(var(--card-hover)) 100%);
    padding: 2rem;
    border-radius: 16px;
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 1;
    animation: fadeInUp 0.8s ease-out;
    max-width: 450px;
    margin: 0 auto 2rem;
}

.pricing-card:hover {
    border-color: hsl(var(--upgrade) / 0.6);
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 30px rgba(16, 185, 129, 0.2);
}

.badge-upgrade {
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 0.8rem;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.2) 0%, rgba(16, 185, 129, 0.1) 100%);
    color: #10b981;
    border: 1px solid rgba(16, 185, 129, 0.3);
    animation: slideInLeft 0.6s ease-out;
}

/* ============= КНОПКИ ============= */
.btn-upgrade {
    background: linear-gradient(135deg, #10b981 0%, #0d9668 100%);
    color: white;
    padding: 12px 24px;
    border-radius: 8px;
    border: none;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
    font-size: 0.9rem;
    position: relative;
    overflow: hidden;
    width: 100%;
}

.btn-upgrade:hover {
    background: linear-gradient(135deg, #0d9668 0%, #0a7c55 100%);
    text-decoration: none;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(16, 185, 129, 0.4);
}

/* ============= СЕТКА И МАКЕТ ============= */
.upgrade-hero {
    position: relative;
    padding: 2rem 0;
}

.upgrade-hero-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

.upgrade-header {
    text-align: center;
    margin-bottom: 3rem;
    animation: fadeInUp 0.8s ease-out 0.2s both;
}

.upgrade-title {
    font-size: 3rem;
    font-weight: 800;
    margin-bottom: 1rem;
    line-height: 1.1;
    background: linear-gradient(135deg, #f3f4f6 0%, #10b981 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.upgrade-description {
    color: #9ca3af;
    font-size: 1.1rem;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.pricing-grid {
    display: flex;
    justify-content: center;
    gap: 2rem;
    max-width: 500px;
    margin: 0 auto;
}

/* ============= КОМПОНЕНТЫ КАРТОЧЕК ============= */
.pricing-badge {
    margin-bottom: 1.5rem;
    display: flex;
    justify-content: center;
}

.pricing-title {
    font-size: 2rem;
    font-weight: 800;
    color: #f3f4f6;
    margin-bottom: 1.5rem;
    text-align: center;
    background: linear-gradient(135deg, #e87dcb 0%, #10b981 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.premium-banner-container {
    text-align: center;
    margin-bottom: 2rem;
}

.pricing-section {
    margin-bottom: 2rem;
    text-align: center;
}

.price-display {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.price-amount {
    font-size: 3rem;
    font-weight: 800;
    color: #f3f4f6;
    line-height: 1;
}

.price-currency {
    color: #9ca3af;
    font-size: 1.5rem;
    font-weight: 600;
}

.price-duration {
    color: #10b981;
    margin-top: 0.5rem;
    margin-bottom: 0;
    font-size: 1rem;
    font-weight: 600;
}

.action-buttons {
    margin-bottom: 2rem;
}

.features-section {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.feature-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.feature-row:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.feature-label {
    color: #9ca3af;
    font-weight: 500;
}

/* ============= ПРЕДПРОСМОТР ПРОФИЛЯ ============= */
.preview-section {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 12px;
    border: 2px dashed rgba(16, 185, 129, 0.3);
    text-align: center;
}

.preview-label {
    display: block;
    color: #10b981;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 1rem;
    opacity: 0.8;
}

.user-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1rem;
}

.user-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 2px solid rgba(232, 125, 203, 0.5);
    box-shadow: 0 0 15px rgba(232, 125, 203, 0.3);
}

.user-info-preview {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.user-name {
    font-weight: 600;
    color: #e87dcb;
    font-size: 1.1rem;
    text-shadow: 0 0 10px rgba(232, 125, 203, 0.5);
}

.votes-section {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    font-size: 0.9rem;
    justify-content: center;
}

.vote-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.05);
}

.vote-up {
    color: #10b981;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.vote-down {
    color: #ef4444;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.vote-count {
    font-weight: 700;
    font-size: 1rem;
}

.bonus-section {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 2rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(16, 185, 129, 0.05) 100%);
    border-radius: 12px;
    border: 1px solid rgba(16, 185, 129, 0.2);
}

.bonus-label {
    color: #9ca3af;
    font-size: 0.9rem;
    flex: 1;
    font-weight: 500;
}

.bonus-amount {
    color: #10b981;
    font-weight: 800;
    font-size: 1.25rem;
}

.benefits-section {
    margin-top: 2rem;
}

.benefits-title {
    font-size: 1rem;
    font-weight: 700;
    color: #f3f4f6;
    margin-bottom: 1rem;
    text-align: center;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid rgba(16, 185, 129, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.benefit-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
    color: #d1d5db;
    padding: 0.5rem;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.benefit-item:hover {
    background: rgba(255, 255, 255, 0.05);
    transform: translateX(5px);
}

/* ============= КАСТОМНАЯ ОШИБКА ============= */
.upgrade-error {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, rgba(239, 68, 68, 0.05) 100%);
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: #fca5a5;
    padding: 1.5rem;
    border-radius: 12px;
    text-align: center;
    margin-bottom: 2rem;
    animation: fadeInUp 0.8s ease-out;
}

.upgrade-error-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
    color: #ef4444;
}

.upgrade-error-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: #fecaca;
}

.upgrade-error-message {
    color: #fca5a5;
    font-size: 1rem;
    line-height: 1.5;
}

/* ============= SVG ИКОНКИ ============= */
.svg-icon {
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    fill: currentColor;
}

.svg-icon-sm {
    width: 0.875em;
    height: 0.875em;
}

.svg-icon-lg {
    width: 1.25em;
    height: 1.25em;
}

/* ============= АДАПТИВНОСТЬ ============= */
@media (max-width: 768px) {
    .upgrade-title {
        font-size: 2rem !important;
    }
    
    .pricing-grid {
        grid-template-columns: 1fr;
        max-width: 100%;
    }
    
    .pricing-card {
        padding: 1.5rem;
        margin: 0 1rem;
    }
    
    .price-amount {
        font-size: 2.5rem;
    }
}

@media (max-width: 480px) {
    .upgrade-hero {
        padding: 1rem 0;
    }
    
    .upgrade-title {
        font-size: 1.75rem !important;
    }
    
    .upgrade-description {
        font-size: 1rem !important;
        padding: 0 1rem;
    }
    
    .pricing-title {
        font-size: 1.75rem;
    }
    
    .feature-row {
        grid-template-columns: 1fr;
        gap: 0.5rem;
        text-align: center;
    }
    
    .user-preview {
        flex-direction: column;
        gap: 0.75rem;
    }
}
</xf:css>

<xf:if contentcheck="true">
    <xf:contentcheck>
        <div class="account-upgrades-container">
            <!-- Анимированный фон -->
            <div class="animated-background">
                <div class="animated-background-overlay"></div>
                <div class="glow-orb glow-orb-1"></div>
                <div class="glow-orb glow-orb-2"></div>
                <div class="glow-orb glow-orb-3"></div>
            </div>

            <!-- Hero секция -->
            <div class="upgrade-hero">
                <div class="upgrade-hero-container">
                    
                    <!-- Заголовок -->
                    <div class="upgrade-header">
                        <h1 class="upgrade-title">
                            Выведите свой опыт<br>на новый уровень
                        </h1>
                        <p class="upgrade-description">
                            Обновите свой аккаунт, чтобы получить доступ к эксклюзивным преимуществам и специальным привилегиям
                        </p>
                    </div>

                    <!-- Проверка на уже имеющееся повышение -->
                    <xf:if is="$purchased is not empty">
                        <div class="upgrade-error">
                            <div class="upgrade-error-icon">
                                <svg class="svg-icon-lg" viewBox="0 0 24 24">
                                    <circle cx="12" cy="12" r="10"/>
                                    <path d="m15 9-6 6m0-6 6 6"/>
                                </svg>
                            </div>
                            <h3 class="upgrade-error-title">У вас уже есть активное повышение!</h3>
                            <p class="upgrade-error-message">
                                Вы не можете приобрести новое повышение, пока у вас активно текущее.
                                Дождитесь окончания срока действия текущего повышения или отмените его.
                            </p>
                        </div>
                    </xf:if>

                    <!-- Доступные повышения -->
                    <xf:if is="$available is not empty">
                        <div class="pricing-grid">
                            <xf:foreach loop="$available" value="$upgrade">
                                <div class="pricing-card">
                                    
                                    <!-- Бейдж -->
                                    <div class="pricing-badge">
                                        <span class="badge-upgrade">
                                            <svg class="svg-icon" viewBox="0 0 24 24">
                                                <path d="M5 12h14M12 5l7 7-7 7"/>
                                            </svg>
                                            Премиум обновление
                                        </span>
                                    </div>

                                    <!-- Заголовок -->
                                    <h3 class="pricing-title">PREMIUM</h3>

                                    <!-- Premium баннер -->
                                    <div class="premium-banner-container">
                                        <div class="forum-banner-premium">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="margin-right: 8px;">
                                                <path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/>
                                            </svg>
                                            PREMIUM
                                        </div>
                                    </div>

                                    <!-- Цена -->
                                    <div class="pricing-section">
                                        <div class="price-display">
                                            <span class="price-amount">150</span>
                                            <span class="price-currency">₽</span>
                                        </div>
                                        <p class="price-duration">Навсегда</p>
                                    </div>

                                    <!-- Кнопка обновления -->
                                    <div class="action-buttons">
                                        <xf:form action="{{ link('purchase', $upgrade, {'user_upgrade_id': $upgrade.user_upgrade_id}) }}" ajax="true" data-xf-init="payment-provider-container">
                                            <xf:if is="{{ count($upgrade.payment_profile_ids) > 1 }}">
                                                <xf:select name="payment_profile_id" class="inputGroup">
                                                    <xf:option>{{ phrase('(choose_payment_method)') }}</xf:option>
                                                    <xf:foreach loop="$upgrade.payment_profile_ids" value="$profileId">
                                                        <xf:if is="{$profiles.{$profileId}}">
                                                            <xf:set var="$profileTitle" value="{$profiles.{$profileId}.display_title}" />
                                                            <xf:if is="!{$profileTitle}">
                                                                <xf:set var="$profileTitle" value="{$profiles.{$profileId}.title}" />
                                                            </xf:if>
                                                            <xf:option value="{$profileId}">{$profileTitle}</xf:option>
                                                        </xf:if>
                                                    </xf:foreach>
                                                </xf:select>
                                                <xf:button type="submit" class="btn-upgrade" icon="purchase">
                                                    <svg class="svg-icon" viewBox="0 0 24 24">
                                                        <path d="M5 12h14M12 5l7 7-7 7"/>
                                                    </svg>
                                                    Обновить
                                                </xf:button>
                                            <xf:else />
                                                <xf:button type="submit" class="btn-upgrade" icon="purchase">
                                                    <svg class="svg-icon" viewBox="0 0 24 24">
                                                        <path d="M5 12h14M12 5l7 7-7 7"/>
                                                    </svg>
                                                    Обновить
                                                </xf:button>
                                                <xf:hiddenval name="payment_profile_id">{$upgrade.payment_profile_ids|first}</xf:hiddenval>
                                            </xf:if>
                                            <div class="js-paymentProviderReply-user_upgrade{$upgrade.user_upgrade_id}"></div>
                                        </xf:form>
                                    </div>

                                    <!-- Предпросмотр профиля -->
                                    <div class="preview-section">
                                        <span class="preview-label">Предпросмотр вашего профиля</span>
                                        <div class="user-preview">
                                            <xf:avatar user="$xf.visitor" size="m" class="user-avatar" />
                                            <div class="user-info-preview">
                                                <span class="user-name">{$xf.visitor.username}</span>
                                                <span class="vip-badge">
                                                    <svg class="svg-icon-sm" viewBox="0 0 24 24">
                                                        <path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/>
                                                    </svg>
                                                    VIP
                                                </span>
                                            </div>
                                        </div>
                                        <div class="votes-section">
                                            <div class="vote-item vote-up">
                                                <svg class="svg-icon-sm" viewBox="0 0 24 24">
                                                    <path d="M7 10v12M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2h0a3.13 3.13 0 0 1 3 3.88Z"/>
                                                </svg>
                                                <span class="vote-count">+1</span>
                                            </div>
                                            <div class="vote-item vote-down">
                                                <svg class="svg-icon-sm" viewBox="0 0 24 24">
                                                    <path d="M17 14V2M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22h0a3.13 3.13 0 0 1-3-3.88Z"/>
                                                </svg>
                                                <span class="vote-count">-1</span>
                                            </div>
                                        </div>
                                    </div>

                                    <!-- Бонусные баллы -->
                                    <div class="bonus-section">
                                        <span class="bonus-label">Бонусные биты</span>
                                        <svg class="svg-icon-lg" viewBox="0 0 24 24" style="color: #10b981;">
                                            <circle cx="12" cy="12" r="10"/>
                                            <path d="m9 12 2 2 4-4"/>
                                        </svg>
                                        <span class="bonus-amount">1500</span>
                                    </div>

                                    <!-- Преимущества -->
                                    <div class="benefits-section">
                                        <h4 class="benefits-title">
                                            <svg class="svg-icon" viewBox="0 0 24 24">
                                                <path d="m9 12 2 2 4-4"/>
                                                <circle cx="12" cy="12" r="10"/>
                                            </svg>
                                            Преимущества PREMIUM
                                        </h4>
                                        <div class="benefit-item">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="color: #10b981;">
                                                <polyline points="20 6 9 17 4 12"/>
                                            </svg>
                                            <span>Создание собственной гильдии</span>
                                        </div>
                                        <div class="benefit-item">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="color: #10b981;">
                                                <polyline points="20 6 9 17 4 12"/>
                                            </svg>
                                            <span>Загрузка фона форума</span>
                                        </div>
                                        <div class="benefit-item">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="color: #10b981;">
                                                <polyline points="20 6 9 17 4 12"/>
                                            </svg>
                                            <span>Загрузка GIF баннеров и аватарок</span>
                                        </div>
                                        <div class="benefit-item">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="color: #10b981;">
                                                <polyline points="20 6 9 17 4 12"/>
                                            </svg>
                                            <span>Редактор box-VIP</span>
                                        </div>
                                        <div class="benefit-item">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="color: #10b981;">
                                                <polyline points="20 6 9 17 4 12"/>
                                            </svg>
                                            <span>Редактор пользовательского CSS</span>
                                        </div>
                                        <div class="benefit-item">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="color: #10b981;">
                                                <polyline points="20 6 9 17 4 12"/>
                                            </svg>
                                            <span>Нет ограничений на темы и сообщения</span>
                                        </div>
                                        <div class="benefit-item">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="color: #10b981;">
                                                <polyline points="20 6 9 17 4 12"/>
                                            </svg>
                                            <span>Убраны проверки на флуд</span>
                                        </div>
                                        <div class="benefit-item">
                                            <svg class="svg-icon" viewBox="0 0 24 24" style="color: #10b981;">
                                                <polyline points="20 6 9 17 4 12"/>
                                            </svg>
                                            <span>Доступ ко всем наградам и значкам</span>
                                        </div>
                                    </div>
                                </div>
                            </xf:foreach>
                        </div>
                    </xf:if>

                    <!-- Приобретенные повышения -->
                    <xf:if is="$purchased is not empty">
                        <div class="block">
                            <div class="block-container">
                                <h2 class="block-header">{{ phrase('purchased_upgrades') }}</h2>

                                <ul class="block-body listPlain">
                                <xf:foreach loop="$purchased" value="$upgrade">
                                    <li>
                                        <div class="pricing-card">
                                            <h3 class="pricing-title">{$upgrade.title}</h3>
                                            <div class="features-section">
                                                <xf:set var="$active" value="{$upgrade.Active.{$xf.visitor.user_id}}" />
                                                <div class="feature-row">
                                                    <span class="feature-label">Статус:</span>
                                                    <xf:if is="$active.end_date">
                                                        <span>Истекает: <xf:date time="{$active.end_date}" /></span>
                                                    <xf:else />
                                                        <span>{{ phrase('expires_never') }}</span>
                                                    </xf:if>
                                                </div>
                                            </div>
                                        </div>
                                    </li>
                                </xf:foreach>
                                </ul>
                            </div>
                        </div>
                    </xf:if>
                </div>
            </div>
        </div>
    </xf:contentcheck>
<xf:else />
    <div class="blockMessage">{{ phrase('there_currently_no_purchasable_user_upgrades') }}</div>
</xf:if>
 
Сверху