우리는 커뮤니티의 온보딩 경험을 개선하는 작업을 진행 중입니다. 당연히, 사용자가 제공한 정보를 기반으로 특정 기능을 수행하거나 표시하기를 원합니다.
현재 사용자는 OIDC 통합을 통해 회사 계정을 생성하면서 계정 생성을 시작합니다. OIDC에 이메일, 이름, 사용자 이름을 제공한 후 Discourse로 다시 연결됩니다.
문제점
이제 사용자에게 추가 사용자 필드를 입력하도록 제공하기를 원합니다. 이는 Discourse가 이를 지원하므로 훌륭한 일입니다. 불행히도 이전 필드의 응답에 기반하여 필드를 표시할 수 없습니다. 예를 들어, "어떤 역할이 당신을 가장 잘 설명하나요?"라고 묻고 개발자, 관리자, 분석가를 옵션으로 제공하기를 원합니다.
개발자를 선택하면, 당연히 선호하는 프로그래밍 언어를 묻고 싶으며, 나중에 개발자 사용자 그룹에 추가할 것입니다.
분석가를 선택하면, 다른 일련의 질문을 하고 다른 사용자 그룹에 추가하고 싶습니다.
제안된 해결책
오늘날 웹상의 많은 양식 옵션은 조건부 양식 필드를 제공합니다(예: "어디서 저희를 알게 되셨나요?"에서 '기타’가 선택되면 이유를 입력하는 추가 필드가 나타남). 새로운 주제 양식 템플릿에서 시작하신 것과 유사하지만 더 견고한 방향으로 나아가시되, 다른 필드 ID, 특히 해당 필드의 입력값에 의존할 수 있는 기능을 추가한다면 좋겠습니다. 예를 들어, 다음과 같은 형태가 될 수 있습니다:
- type: dropdown
id: user-type
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Choose your role..."
label: "Which option best describes your job"
validations:
required: true
- type: dropdown
id: developer-type-programming-language
depends: user-type
choices:
- "Developer"
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Preferred programming language..."
label: "What is the primary programming language used in your role?"
validations:
required: true
이 예시에서는 모든 사용자에게 첫 번째 질문이 표시됩니다. 사용자가 드롭다운 목록에서 Developer를 선택하면, 선호하는 프로그래밍 언어를 묻는 두 번째 질문이 양식에 나타납니다.
이 조건부 필드 개선 기능은 사용자 온보딩 프로세스뿐 아니라 원래 의도된 새로운 주제 생성 시에도 사용할 수 있습니다.
그 플러그인은 정말 멋진 것 같아요! 그 존재를 몰랐습니다. 만약 사용자 프로필 필드에 확장할 수 있다면, Jay의 필요는 물론 OP의 필요에도 잘 맞을 것 같습니다.
하지만 이 질문 덕분에 Pavilion의 Custom Wizard 플러그인 도 떠올랐고, 이런 시나리오에 적용할 수 있을지 궁금해졌습니다. 사용해 본 적이 없어서 그 기능을 정확히 알지는 못하지만, 조건부 설정과 사용자 정의 필드 관리를 할 수 있다고 나와 있긴 합니다…