サインアップページからカスタムユーザーフィールドを非表示にするサイト設定

最近、そのような機能リクエストを見たような気がしましたが、見つけられません。

ユーザーのカスタムフィールドが多数ある場合、ログインモーダルが見づらくなります。オプションのフィールドが10個、必須のフィールドが2個ある場合、必須のフィールドを見つけるために何度もスクロールする必要があり、非常に手間がかかります。

以下のようにCSSでそれらのフィールドを非表示にすることは可能です:

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

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

}

これは少し面倒で、nth-of-type の値を試行錯誤で推測する必要がありますが、私が提案したいのは、このモーダルを適切に表示させるために機能していたCSSが時々変更されてしまうという :bug: です。最近の beta6 で変更されたようです。これにより、私のクライアントは困っています。必須フィールドが表示されないため、ユーザーがサインアップできないからです。この問題に気づいたのは、誰かが不満をメールで報告してきたからです。

問題解決!

これらのフィールドにCSSが追加されたため、もはや問題はありません!

「いいね!」 10

I don’t think it would be hard to add a class or data attribute that includes the custom field’s name, which would make it much less fragile to target with CSS. I can probably get to that within the next couple of days.

「いいね!」 7

Took a quick look and it’s nearly identical to another PR I opened recently to add a class to tag groups. So here’s a PR for this… we might want to add a helper to sanitize class names before merging these?

「いいね!」 9

このマージ後にフォローアップを怠っていたことに気づきました。現在、サインアップページではすべてのユーザーフィールドに user-field-name という形式のクラスが設定されています。例えば、フィールド名が「利用規約」であれば、クラスは user-field-terms-and-conditions となります。

ショートカットとして、サインアップ時のすべてのカスタムユーザーフィールドを非表示にするには、以下の CSS を使用してください。

.d-modal.create-account div[class*="user-field-"] {
    display: none;
}
「いいね!」 7

Thanks! I managed to get this done a week or two ago. You might edit that list to also include the css to un-hide a field or two after hiding the rest.

「いいね!」 2

この問題を解決するためのスレッド(CSS による解決策を含む)は以下でクローズされています:

現在、カスタムユーザーフィールドのオプションは以下の通りです:

  • 登録後に編集可能か?
  • 登録時に必須か?
  • 公開プロフィールに表示するか?
  • ユーザーカードに表示するか?

もう一つのオプションが非常に役立つと思います:

  • 登録フォームに表示するか?
    または
  • 登録フォームに非表示にするか?

デフォルトでは、カスタム CSS の修正を行わない限り、すべてのカスタムフィールド(必須かどうかにかかわらず)が登録フォームに表示されます。これにより、フィールドが多すぎると登録フォームが過剰になり、新規ユーザーにとって威圧的に見える可能性があるため、実装できるカスタムフィールドの数がある程度制限されています。

「いいね!」 11

サインアップ時にユーザーに負担をかけたくない情報を収集するために、カスタムユーザーフィールドを複数用意しておくと便利な場合があります。例えば、住所、郵便番号、髪の色などの情報を取得したい場合でも、サインアップ時には名前とメールアドレスのみを求めたいと考えるかもしれません。

現在では、テーマコンポーネントを使用してすべてのカスタムフィールドを非表示にし、必要なものだけ表示させることで、この対応が可能です。もしカスタムユーザーフィールドの設定にチェックボックスがあれば、さらに便利になるでしょう。

「いいね!」 10

これは素晴らしいアイデアです。

また、登録者と招待者の区別ができるようになると特に役立ちます。特に、特定の項目が両方に必須なのか、登録者のみに必須なのかを明確にできる場合です。

例えば、当社は参加者の適性や所属グループを判断するために「参加の理由」の入力を求めています。招待リンク経由で参加する場合はこの項目は重複しますが、必須項目として設定している場合、これを非表示にすると登録プロセスが破綻してしまいます。

「いいね!」 3

こんにちは。

私のサイトには、サインアップ時に必要のないユーザーフィールド(ソーシャルメディアなど)がいくつかあります。

サインアップ時には非表示になり、ユーザープロフィールの編集時のみ表示される「サインアップ時に表示しない」オプションがあると有益だと思います。

「いいね!」 6

CSSで既に実現できます。

しかし、これを明示的なオプションとして提供するのは非常に良いでしょう!これはすでに数回リクエストされています。

この機能に関するすべての Feature トピックをこのトピックにまとめました。

「いいね!」 4

このトピックでも少し注目されました。

「いいね!」 11

サインアップモーダルに変更があり、このCSSが機能しなくなった可能性がありますか?

投稿1の@pfaffmanのコード、または@awesomerobotのコードのいずれを使用しても、サインアップページでカスタムフィールドを非表示にすることができません。

CSSは「Themes」>「Common」>「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日後に自動的にクローズされました。新しい返信は許可されていません。