выбор сервера при регистрации (для кастомных ролей)

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

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

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
14 Мар 2025
Сообщения
116
Вроде бы сделал всё правильно , но учитывая то , что там белый цвет . Там у меня не видно текста . Но мне надо или поменять цвет или сделать её кастомной .
 
Решение
Предлагаю создать все заново и идти по инструкции. Создаем дополнительное поле:
ID поля: server_choice
Заголовок: Сервер
Место отображения: Персональная информация
Тип поля: Выпадающее меню с выбором одного варианта
Настройки для полей с вариантами ответов:
1749922595395.png
Обязательное поле (галочка)
Показывать на странице регистрации (галочка)
HTML для вывода значения:
HTML:
<span class="userBanner server-{$choice}">{$value}</span>

Переходим к модификации шаблонов, чтобы вывести выбранный сервер в профиль. Переходим по ссылке АдресФорума/admin.php?template-modifications/add

Шаблон: member_view
Ключ модификации: server
Тип поиска: Простая замена
Найти:
HTML:
                                <xf:contentcheck><xf:userbanners user="$user"...
Пользователь
Регистрация
14 Мар 2025
Сообщения
116
Заблокированный
Регистрация
29 Мар 2025
Сообщения
102
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Я почти ничего не понял, распишите подробнее, что вы хотите сделать


OFFTOP

Колпачёк, так как чел не умеет объяснять, я сделаю это за него...

Он хочет, чтобы при регистрации в xenforo было окно с выбором сервера, где можно выбрать сервер, на котором ты непосредственно будешь играть. После регистрации, должен автоматически выдаться кастомный баннер с названием сервера, который был выбран при регистрации.

UPD: я например, хз как это делать =(






Telegram: @K0T0BICH
ВКонтакте: vk.com/rostislav_kotov
 
Команда форума
Модератор
Регистрация
4 Ноя 2024
Сообщения
734
Предлагаю создать все заново и идти по инструкции. Создаем дополнительное поле:
ID поля: server_choice
Заголовок: Сервер
Место отображения: Персональная информация
Тип поля: Выпадающее меню с выбором одного варианта
Настройки для полей с вариантами ответов:
1749922595395.png
Обязательное поле (галочка)
Показывать на странице регистрации (галочка)
HTML для вывода значения:
HTML:
<span class="userBanner server-{$choice}">{$value}</span>

Переходим к модификации шаблонов, чтобы вывести выбранный сервер в профиль. Переходим по ссылке АдресФорума/admin.php?template-modifications/add

Шаблон: member_view
Ключ модификации: server
Тип поиска: Простая замена
Найти:
HTML:
                                <xf:contentcheck><xf:userbanners user="$user" /></xf:contentcheck>
Заменить:
HTML:
$0
<xf:if is="$user.Profile.custom_fields.server_choice">
    <div class="serverWrapper" style="margin-top: 6px;">
        <span style="font-size: 13px; font-weight: 600; color: @xf-textColorMuted;">
              СЕРВЕР:
        </span>
        <xf:macro name="renderServerName" arg-id="{$user.Profile.custom_fields.server_choice}" />
      </div>
</xf:if>

<xf:macro name="renderServerName" arg-id="">
    <xf:if is="$id == '1'">
        <span class="userBanner server-1">Петербург</span>
    <xf:elseif is="$id == '2'" />
        <span class="userBanner server-2">Сочи</span>
    <xf:elseif is="$id == '3'" />
        <span class="userBanner server-3">Москва</span>
    <xf:elseif is="$id == '4'" />
        <span class="userBanner server-4">Казань</span>
    <xf:elseif is="$id == '5'" />
        <span class="userBanner server-5">Воронеж</span>
    <xf:elseif is="$id == '6'" />
        <span class="userBanner server-6">Ростов</span>
    </xf:if>
</xf:macro>
В шаблон extra.less
Less:
.userBanner
{
    color: white;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 71%;
    border-radius: 1000px 450px 1000px 450px;
    padding: 5px 7px;
    background-size: 700% 700%;
    animation: AnimBanner 10s ease infinite;
    
    &.server-1
    {
        background-image: linear-gradient(270deg, #ff4e50, #f9d423);
    }
    
    &.server-2
    {
        background-image: linear-gradient(270deg, #ffe259, #ffa751);
        color: #222
    }
    
    &.server-3
    {
        background-image: linear-gradient(270deg, #00c6ff, #0072ff);
    }
    
    &.server-4
    {
        background-image: linear-gradient(270deg, #43cea2, #185a9d)
    }
    
    &.server-5
    {
        background-image: linear-gradient(270deg, #f7971e, #ffd200);
    }
    
    &.server-6
    {
        background-image: linear-gradient(270deg, #f7971e, #ffd200);
    }
}

@keyframes AnimBanner {
    0% {
        background-position: 0% 50%
    }

    50% {
        background-position: 100% 50%
    }

    100% {
        background-position: 0% 50%
    }
}

Если вы не хотите, чтобы серверы были, как баннеры, и хотите сделать по-своему, то меняете класс userBanner на свой в дополнительном поле, HTML для вывода значения:
HTML:
<span class="userBanner server-{$choice}">{$value}</span>
Потом переходите в модификацию и меняете классы там
HTML:
$0
<xf:if is="$user.Profile.custom_fields.server_choice">
    <div class="serverWrapper" style="margin-top: 6px;">
        <span style="font-size: 13px; font-weight: 600; color: @xf-textColorMuted;">
              СЕРВЕР:
        </span>
        <xf:macro name="renderServerName" arg-id="{$user.Profile.custom_fields.server_choice}" />
      </div>
</xf:if>

<xf:macro name="renderServerName" arg-id="">
    <xf:if is="$id == '1'">
        <span class="userBanner server-1">Петербург</span>
    <xf:elseif is="$id == '2'" />
        <span class="userBanner server-2">Сочи</span>
    <xf:elseif is="$id == '3'" />
        <span class="userBanner server-3">Москва</span>
    <xf:elseif is="$id == '4'" />
        <span class="userBanner server-4">Казань</span>
    <xf:elseif is="$id == '5'" />
        <span class="userBanner server-5">Воронеж</span>
    <xf:elseif is="$id == '6'" />
        <span class="userBanner server-6">Ростов</span>
    </xf:if>
</xf:macro>

Единственный вариант, который я нашел, чтобы вывести выбранный сервер в профиль - это только через макрос. Мне даже интересно как у них это реализовано

1749923625834.png
 
Сверху