Настройка сайта для скрытия пользовательских полей со страницы регистрации

Казалось, я недавно видел подобный запрос на добавление функции, но не могу его найти.

Если у вас много пользовательских полей, модальное окно входа становится неудобным. Если есть 10 необязательных полей и 2 обязательных, приходится долго прокручивать, чтобы найти те, которые обязательны для заполнения. Это очень утомительно.

Можно скрыть эти поля с помощью CSS, например:

.create-account .user-fields .user-field {
    display: none;

    &:nth-of-type(4) {
        display: block;
    }

}

Это несколько неудобно, так как нужно методом проб и ошибок угадывать, какой nth-of-type использовать. Однако, возможно, стоит отметить как :bug:, что CSS-стили, которые раньше правильно отображали модальное окно, периодически меняются. Похоже, что в недавней версии beta6 они были изменены. Это расстроило моего клиента, так как обязательные поля стали невидимыми, и пользователи не могли зарегистрироваться. Он узнал об этом только после того, как кто-то написал жалобу по электронной почте.

Проблема решена!

К этим полям был добавлен CSS, так что это больше не проблема!

10 лайков

Я не думаю, что будет сложно добавить класс или data-атрибут с именем пользовательского поля, что сделает его гораздо менее хрупким для стилизации через CSS. Я, вероятно, смогу заняться этим в течение следующих пары дней.

7 лайков

Бегло посмотрел — это почти идентично другому PR, который я недавно открыл для добавления класса к группам тегов. Поэтому вот PR по этому поводу… Возможно, стоит добавить вспомогательную функцию для очистки названий классов перед слиянием этих изменений?

9 лайков

Я только что осознал, что так и не связался после того, как это было слито. Теперь на странице регистрации у всех полей пользователя есть класс в формате user-field-name. Таким образом, если у вас есть поле с названием «условия использования», у него будет класс user-field-terms-and-conditions.

Вы также можете воспользоваться ярлыком и скрыть все пользовательские поля при регистрации с помощью:

.d-modal.create-account div[class*="user-field-"] {
    display: none;
}
7 лайков

Спасибо! Мне удалось сделать это неделю или две назад. Вы можете отредактировать этот список, чтобы также включить CSS для отображения одного или двух полей после скрытия остальных.

2 лайка

Вот закрытая тема о решении этой проблемы, включающая CSS-решение:

В настоящее время для пользовательских полей доступны следующие опции:

Редактировать после регистрации?
Обязательно при регистрации?
Показывать на публичном профиле?
Показывать на карточке пользователя?

Думаю, будет очень полезна ещё одна опция:

Показывать на форме регистрации?
или
Скрыть на форме регистрации?

По умолчанию, без изменения CSS, все пользовательские поля (обязательные или нет) отображаются на форме регистрации. Это несколько ограничивает количество реализуемых пользовательских полей, так как их избыток может перегрузить форму регистрации и потенциально отпугнуть новых пользователей.

11 лайков

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

Сейчас это возможно с помощью компонента темы, который скрывает все пользовательские поля, а затем показывает только нужные. Было бы здорово, если бы в настройках пользовательских полей появилась соответствующая галочка.

10 лайков

Это было бы отлично.

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

Например, мы просим людей указать «Причину присоединения», чтобы помочь нам оценить их пригодность и определить группу. Это избыточно, когда люди приходят по ссылке-приглашению, но это поле нельзя скрыть, если оно обязательно, иначе процесс регистрации для них нарушится.

3 лайка

Здравствуйте,

На моём сайте есть некоторые поля профиля пользователей, которые не обязательно заполнять при регистрации, например, ссылки на социальные сети.

Я думаю, было бы полезно добавить опцию «Не отображать при регистрации», которая скрывала бы эти поля во время регистрации и делала бы их видимыми только при редактировании профиля пользователя.

6 лайков

Вы уже можете этого добиться с помощью CSS:

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

Я объединил все темы с тегом #feature по этой теме в одну.

4 лайка

Это также получило некоторый отклик в этой теме:

11 лайков

Не изменилось ли что-то в модальном окне регистрации, из-за чего этот CSS больше не работает?

Я не могу скрыть никакие пользовательские поля на странице регистрации, используя ни код из первого поста от @pfaffman, ни код от @awesomerobot для скрытия всех пользовательских полей:

Я применяю CSS через Темы > Общие > CSS.

2 лайка

Похоже, что в другом месте Discourse был добавлен более специфичный CSS, который переопределяет display:none

.d-modal.create-account .user-field {
  display: flex;
}

Я быстро посмотрю на :point_up: и проверю, нужна ли нам такая специфичность, но тем временем это обновление :point_down: должно сработать:

.d-modal.create-account div[class*="user-field-"] {
  display: none;
}
2 лайка

Подтверждаю, это отлично сработало, чтобы скрыть их все!

Огромное спасибо, Kris @awesomerobot :smiley:

1 лайк

Добавлена настройка для скрытия полей пользователя из формы регистрации:

3 лайка

Эта тема была автоматически закрыта через 3 дня после последнего ответа. Новые ответы больше не принимаются.