토픽을 생성할 때 사용자가 양식을 작성하도록 할 수 있을까요? (즉, 토픽 생성 창을 열면 토픽 안에 사용자가 채워야 하는 양식이 표시되도록 하는 것입니다)
카테고리를 생성할 때 토픽 템플릿을 사용하면 사용자가 입력해야 할 항목에 대한 안내 문구를 넣을 수 있습니다. 하지만 이것은 양식과는 다릅니다. 안내 문구는 삭제할 수 있으므로(초보 사용자는 어떻게 해야 할지 모를 수 있습니다), 같은 페이지에 여러 개의 안내 문구가 있으면 화면이 혼잡해집니다.
토픽 생성 시 사용자가 몇 가지 핵심 정보만 입력하도록 하고 싶다면, 양식이 더 깔끔하고 단순한 사용자 경험을 제공합니다.
이것이 가능한가요? 이 테마 컴포넌트를 찾았지만, 정확히 어떤 기능을 하는지는 아직 모르지만 제가 원하는 것을 달성하지 못할 것 같습니다. 몇 년 전 이 요청도 보았는데, 조치된 것 같지 않습니다.
또한, Custom Wizard 플러그인이 사용자가 작성할 양식을 만들 수 있다는 것은 알고 있지만, 이 경우 양식이 Discourse 토픽 내부에 있어야 합니다(태깅, 답변 등 관련 기능과 함께 토픽으로 표시되도록 하기 위함입니다). 그리고 사용자 경험이 명확하게 앱 내에서 유지되어야 합니다(Custom Wizard 플러그인은 다른 메뉴 등이 있는 별도 페이지로 이동시킨다고 생각합니다)
하지만–폼과 유사한 동작을 완전히 구현하기에는 다소 부족합니다. 왜냐하면 현재 존재하는 플레이스홀더들은 다음에 설명하듯이 “전체 또는 아무것도 아닌(all or nothing)” 방식으로 나타나기 때문입니다.
플레이스홀더를 사용한 폼과 유사한 동작. 하지만 편집기에서 div에 어떻게 접근하나요?
이것을 더 폼처럼 보이게 하려면 각 섹션이 독립적으로 작동해야 합니다.
현재 플레이스홀더 텍스트 테마 컴포넌트를 사용하면 ‘전체 또는 아무것도 아닌(all or nothing)’ 방식입니다–사용자가 편집기를 클릭하면 모든 플레이스홀더 제목이 사라집니다.
따라서 기본적인 폼 동작을 위해, 모든 제목이 나타나거나 사라지는 대신 각 플레이스홀더 제목 섹션이 독립적으로 작동해야 합니다. 즉, 사용자가 플레이스홀더 "이름"을 클릭하면 해당 플레이스홀더만 사라지고, 다른 플레이스홀더("위치"와 “문제”)는 그대로 유지되어야 합니다.
이것은 각 플레이스홀더가 텍스트 편집기 내에서 고유한 id를 가진 자신의 div의 일부가 될 수 있다면 가능합니다. 그런 다음 jquery를 사용하여 사용자가 해당 영역을 클릭했는지 여부에 따라 플레이스홀더를 표시하거나 숨길 수 있습니다. 이것은 현재 textarea 내에 별도의 div를 추가해야 하는데, 어떻게 해야 할지 확실하지 않습니다.
이 접근 방식에 대한 질문: 사용자가 클릭했을 때 조치를 취할 수 있도록 편집기의 textarea 내부의 div에 어떻게 접근할 수 있나요?
대안: 기존 템플릿 텍스트 옵션 사용. 하지만 텍스트를 편집 불가능하게 만드는 방법은?
대안으로, 사용자가 클릭할 때 섹션 헤더가 “사라지지” 않는 방식일 수 있습니다. 즉, 섹션 헤더(예: 이름, 위치, 문제)는 페이지에 남아 있는 텍스트가 됩니다. 현재 기본 주제 템플릿 기본값과 비교하여 더 폼처럼 보이게 하려면:
섹션 헤더 텍스트는 사용자가 편집할 수 없어야 합니다 (즉, contenteditable="false")
섹션 구분점은 사용자가 제거할 수 없어야 합니다
섹션 헤더 아래에 사용자가 입력할 수 있는 명확한 공간이 있어야 합니다. 현재 기본 템플릿에서는 텍스트가 있는 위치로 가서 return을 눌러 입력 공간을 만들어야 합니다.
이 접근 방식에 대한 질문: 템플릿 텍스트를 입력하되 (i) 사용자가 그 텍스트를 편집할 수 없게 하고 (ii) 각 텍스트 아래에 사용자가 정보를 입력할 명확한 장소를 만드는 방법은 무엇인가요?
이 문제를 다시 살펴보고 싶습니다. 프론트엔드에서 사용자가 (사용자에게는) 양식처럼 보이는 내용을 입력할 수 있는 방법이 있는지 궁금합니다. 예를 들어, 사용자가 주제를 생성할 때 다음과 같은 것을 보게 됩니다:
“이름”
“위치”
“문제”
이 모든 것은 프론트엔드에 그대로 두면 됩니다. 사용자가 제출하는 내용에서 서로 다른 섹션을 파싱할 필요는 없습니다(있으면 좋겠지만, 지금은 필요하지 않습니다). 현재와 마찬가지로 모든 것을 제출할 수 있습니다. 목표는 사용자가 더 균일하게 제출하도록 하고, 서로 다른 프롬프트가 있을 때 사용자에게 깔끔한 UI를 제공하는 것입니다.
현재 주제를 템플릿을 추가하여 사용할 수 있는 것과 이 방식의 차이점:
사용자가 이러한 프롬프트를 삭제할 수 없습니다(예: “이름”, “위치”, "문제"를 삭제할 수 없음).
이상적으로는 양식과 같은 스타일링을 추가하여 사용자가 어디에 입력해야 하는지 더 명확하게 보여줄 수 있으면 좋겠습니다. 서로 다른 프롬프트가 있는 경우 주제를 생성하는 사용자에게 더 깔끔한 UI를 제공하기 위함입니다. 주제 템플릿을 사용하는 경우, 사용자는 각 프롬프트에 대한 응답을 입력하기 위해 자신의 공간을 직접 만들어야 합니다. 또한, 현재 주제 템플릿을 사용할 때 서로 다른 프롬프트가 여러 개 있으면 주제 생성 창이 꽤 혼잡해 보입니다.
@sam은 이전에 다음과 같이 답변했습니다:
실제로 이것이 가능해야 할 것 같습니다. 제 가장 큰 문제점: 테마 컴포넌트(또는 플러그인)에서 주제 생성 창 안에 표시되는 내용을 어떻게 변경합니까? 현재 제가 시도해 본 결과, iframe 블랙박스처럼 보입니다.
주제 템플릿이 하는 일과 placeholder 플러그인이 하는 일을 고려할 때, 거기에 접근하는 방법이 있을 것 같습니다. 하지만 그들이 어떻게 하는지 파악하지 못했습니다.
주제 생성 창 안에 있는 것을 변경하기 위해 코드로 할 수 있는 일에 대한 팁이 있을까요?
답변해 주셔서 감사합니다. 테마와 플러그인 개발 방법은 잘 알고 있습니다. 제가 여기에서 찾고 있는 것은 주제 생성 폼의 I-frame에 접근하기 위한 구체적인 코드에 대한 안내입니다. 모든 것을 상세히 알려달라는 것은 아니지만, 어떤 형태의 안내라도 감사하겠습니다. 이전에 그 폼에 변경 사항을 적용하는 방법을 찾는 데 어려움을 겪었습니다.
이름, 위치 등을 예로 든 것은 일반적인 폼에 대한 가상의 사례일 뿐입니다. 제 경우엔 다른 프롬프트가 필요합니다.