조건부 사용자 필드

사용 사례

우리는 커뮤니티의 온보딩 경험을 개선하는 작업을 진행 중입니다. 당연히, 사용자가 제공한 정보를 기반으로 특정 기능을 수행하거나 표시하기를 원합니다.

현재 사용자는 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를 선택하면, 선호하는 프로그래밍 언어를 묻는 두 번째 질문이 양식에 나타납니다.

이 조건부 필드 개선 기능은 사용자 온보딩 프로세스뿐 아니라 원래 의도된 새로운 주제 생성 시에도 사용할 수 있습니다.

6개의 좋아요

GitHub - discourse/discourse-authentication-validations · GitHub 를 참고해 볼 수 있습니다. 이 저장소는 정확히 그 기능을 구현하고 있지만, 사용자 가입 페이지에만 적용됩니다. 해당 필드를 편집하는 사용자 설정 페이지에 적용하는 것은 쉽지 않아 보입니다.

다만, 질문자님은 특정 기능을 요청하고 계신 것이지, 즉각적인 문제에 대한 해결책을 찾고 계신 것이 아닙니다.

6개의 좋아요

유망해 보입니다—관련 문서가 더 많았으면 좋겠어요.

자세한 내용은 다음을 참조하세요: 메타 토픽 URL

그런 의도가 있었던 것 같습니다.

1개의 좋아요

아쉽게도 여기까지입니다.

이것은 GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins · GitHub 의 보일러플레이트 코드입니다.

2개의 좋아요

이 플러그인은 실제로 꽤 직관적입니다.

하단의 체크박스를 선택하면 인증 옵션이 추가됩니다.

이제 다음 사용자 커스텀 필드를 활성화할 트리거 응답을 입력하세요. 제 경우의 경우, 헤드셋 수가 'None’보다 큰 값일 때입니다.

입력을 마친 후, 표시하려는 사용자 커스텀 필드를 대상으로 지정하세요. 제 예시에서는 1~6개 이상일 경우 사용자에게 1차 및 2차 HMD를 입력하도록 요청합니다.

이 기능이 실험적인 Form-templates로 확장되면 좋겠습니다.

5개의 좋아요

오래전부터 할 일 목록에 올려뒀는데… 이번 주에 꼭 추가할 거예요 :slight_smile:

4개의 좋아요

이미 작성해 뒀을 거라고 생각했는데요.. :sweat_smile:

메타 링크를 저장소에 업데이트하겠습니다.

3개의 좋아요

아! 저도 그걸 까먹고 있었네요. 죄송합니다.

회원 가입 페이지가 아니라 사용자 프로필에서도 해당 조건이 작동할 수 있을까요? (현재는 계정 생성 페이지에서만 작동하는 것으로 이해하고 있습니다. 누군가 나중에 돌아가서 내용을 입력할 때 해당 규칙이 적용되기를 원하고 있습니다.)

2개의 좋아요

네, 현재 이 플러그인이 영향을 미치는 유일한 위치입니다.

우리가 같은 맥락을 이해하고 있는지 확인해 보겠습니다.

/preferences/profile을 통해 공개 사용자 맞춤 필드를 업데이트할 수 있는 기능을 원하시며, 계정 생성 모달에서 사용하는 것과 동일한 조건부 숨김/표시 로직을 적용하자는 말씀이신가요?

예를 들어, custom field 1의 값이 show custom field 2이면 두 번째 맞춤 필드를 표시하는 것과 같은 경우 말입니다.

2개의 좋아요

네. Editable after signup(가입 후 편집 가능)으로 설정된 모든 custom_user_fields(사용자 정의 필드)에 대해 /preferences/profile 페이지에서도 동일한 규칙이 적용되기를 원합니다.

그렇다고 생각합니다. 계정 생성 모달에서 적용되는 것과 동일한 규칙이 프로필 페이지에서도 적용되어야 합니다.

4개의 좋아요

이건 좋은 추가 기능이 될 것 같습니다. 조건부 필드 로직을 프로필 페이지로 옮기는 작업은 상당히 쉬울 것입니다.

pr-welcome 태그를 붙이는 데 좋은 후보지만, 앞으로 한 달 정도 안에 제가 직접 살펴볼 수도 있습니다.

5개의 좋아요

글쎄요, 당신에게는 그럴지도 모르죠! 저도 한번 시도해 봤지만 금세 길을 잃었습니다. 설정 페이지에 몇 가지를 복사하는 것처럼 쉬울 것 같았는데, 정확히 무엇을 복사해야 하는지 제가 바로 파악하기에는 너무 복잡했습니다.

그렇게 해 주시면 정말 좋겠습니다!

4개의 좋아요

저도 비슷한 사용 사례가 있습니다! 가입 시와 가입 후 수정 가능한 사용자 필드 모두에 해당합니다. (예를 들어, 사용자가 당뇨를 앓고 있는 고양이를 키우고 있다면 고양이에 대해 더 많은 정보를 원하고, 자가 검사를 하고 있다면 그 방법을 알고 싶다는 식입니다)

(어딘가에서 특정 사용자 필드를 채우는 것을 신뢰 수준 변경의 조건으로 삼는 것에 대해 언급하는 사람을 봤는데, 온보딩에도 정말 흥미로운 아이디어일 것 같습니다!)

그 플러그인은 정말 멋진 것 같아요! 그 존재를 몰랐습니다. 만약 사용자 프로필 필드에 확장할 수 있다면, Jay의 필요는 물론 OP의 필요에도 잘 맞을 것 같습니다.

하지만 이 질문 덕분에 Pavilion의 Custom Wizard 플러그인 :mage:도 떠올랐고, 이런 시나리오에 적용할 수 있을지 궁금해졌습니다. 사용해 본 적이 없어서 그 기능을 정확히 알지는 못하지만, 조건부 설정과 사용자 정의 필드 관리를 할 수 있다고 나와 있긴 합니다… :thinking:

1개의 좋아요