하위 주제 만들기?

일부 주제를 다른 주제들의 하위 주제로 만들고 싶습니다.

예를 들어 "주제 A"가 있다고 가정해 보겠습니다. 주제 A 페이지에 “하위 주제 만들기” 버튼을 두면, 사용자가 새 주제인 "주제 B"를 생성할 수 있습니다. 이 경우 주제 B는 주제 A의 자식 주제가 됩니다.

사용자 경험 관점에서 이것이 의미하는 바는 다음과 같습니다:

또한 주제 A 페이지에 “주제 A의 모든 자식 주제 보기” 버튼을 둘 수도 있습니다. 이 버튼을 누르면 주제 A의 자식 주제 목록, 예를 들어 주제 B와 주제 A의 자식인 다른 주제들로 이동하게 됩니다.

이를 구현하는 가장 좋은 방법은 무엇일까요? (플러그인으로 구현해야 할 것 같지만, 괜찮습니다.)

참고로 하위 주제는 여러 단계가 아니라 단 한 단계까지만 찾고 싶습니다. 여러 단계는 원하지 않습니다.

제가 생각하기에 가능한 몇 가지 방안은 다음과 같습니다:

카테고리 (아마도 가장 좋은 방법은 아닐 것 같습니다)

카테고리는 제가 구상한 기능과 유사한 기능을 제공할 수 있지만, 하위 주제가 있는 주제가 적당히 많아지면 너무 무거워질 수 있습니다 (기본적으로 각 상위 주제마다 새로운 카테고리를 하나씩 만드는 것은 과한 것처럼 보입니다).

또는

태그

지금까지 제가 생각한 가장 좋은 방법은 태그를 사용하는 것입니다. 즉, 주제 A에서 "하위 주제 만들기"를 클릭하면 새 주제가 열리고, "주제-A"와 같은 숨겨진 태그를 프로그래밍 방식으로 추가하여 주제 A로 연결되도록 합니다. 그런 다음 주제 A의 "모든 하위 주제 보기"를 클릭하면 “주제-A” 태그로 검색을 수행합니다.

기본적으로 각 메인 주제마다 하나의 태그가 생성되어 태그 수가 상당히 많아질 수 있다는 점을 제외하면 꽤 깔끔한 방법입니다.

또는

주제용 사용자 정의 필드

고려해 본 또 다른 가능성은 주제에 사용자 정의 필드를 만들어, 해당 주제의 하위 주제 ID 배열을 저장하는 것입니다. 이 방법도 작동할 수 있지만, 코딩 측면에서 약간 더 복잡할 수 있습니다.

예를 들어, 하위 주제가 생성된 후에야 메인 주제의 사용자 정의 필드를 업데이트해야 하고, 기존에 내장된 태그 검색 기능을 사용하는 대신 메인 주제의 사용자 정의 필드 배열 내의 모든 주제를 검색하는 새로운 종류의 검색을 만들어야 합니다.

제가 놓치고 있는 다른 해결책이 있을까요?

중요한 코드 작업 없이도 작동할 수 있는 또 다른 해결책을 발견했습니다.

custom wizard 플러그인을 사용하면 하나의 절차로 여러 작업을 수행할 수 있습니다. 따라서 이 경우 마법사(wizard)를 통해 사용자가 하위 주제(sub-topic)를 작성하도록 요청하고, 마법사가 다음 작업을 수행하도록 설정할 수 있습니다.

  • 하위 주제를 위한 새 주제(topic) 생성
  • 하위 주제를 링크하는 메인 주제에 답변(reply) 생성

모든 메인 게시물에 대한 사용자 정의 CSS(카테고리나 태그를 사용하여 선택할 수 있는 CSS 클래스를 추가할 수 있음)를 사용하면, 마음에 드는 모습에 맞게 답변의 외관을 수정할 수 있습니다. 또한 마법사를 통해 답변에 매개변수를 추가하여 자동 생성된 답변만 선택할 수 있는 방법을 찾을 수도 있습니다.

답변 기반 솔루션을 선호하지 않는다면, 커스텀 마법사가 생성된 하위 주제에 태그를 추가하는 기능도 제공할 수 있다고 생각합니다.

그 부분은 생각하지 못했습니다. 감사합니다. 제가 놓치고 있는 핵심은 서브토픽에서 메인 토픽으로 연결되는 요소입니다. 예를 들어 서브토픽에 연관된 태그(“Topic-A”) 같은 것이요.

마법사(wizard)가 제출 시 API 호출을 보내 태그를 생성하고 서브토픽에 연결하는 방식으로 생각하고 계신 건가요? (저는 마법사 플러그인에 대해 그다지 익숙하지 않습니다.)

또한 마법사 플러그인의 한계 중 하나는 자체 페이지를 여는 것인데, 이 페이지에는 제 사이트의 일반 헤더가 없습니다. 즉, 마법사가 포함된 모든 페이지는 앱의 나머지 부분과 꽤 다른 모습을 보이게 되어 이 경우 사용자에게 혼란을 줄 수 있다고 생각합니다.

저도 하위 주제(sub-topic)를 한 단계만 지원하면 좋겠다고 생각하고 있었습니다. 이렇게 하면 한 단계의 중첩/계층 구조를 구현하면서도, 인터페이스를 깔끔하게 유지하여 중첩된 대화들이 뒤섞이는 것을 방지할 수 있습니다.

제가 이 기능을 사용할 수 있는 예시:

  • 에피소드/게시물/기사를 위한 주제를 만들고, 사람들이 자신의 반응에 기반하여 하위 주제를 생성하게 합니다.

  • 질문을 위한 주제를 만들고, 사람들이 자신의 답변을 하위 주제로 생성하게 합니다 (사람당 하위 주제 1개로 제한하는 옵션이 있으면 더 좋습니다)

플러그인을 만들거나 현재 Discourse 기능으로 이 방법을 구현하는 데 진전이 있으신가요?

제가 볼 수 있는 유일한 방법은 토픽 커스텀 필드를 사용하는 것이었습니다. 예를 들어, 서브토픽에 메인 토픽으로 돌아가는 링크를 포함하는 커스텀 필드를 추가할 수 있습니다. 그런 다음 해당 메인 토픽을 커스텀 필드 값으로 가진 모든 토픽을 검색할 수 있습니다. 아직 완전히 구현된 플러그인은 없지만, 개발 환경에서 제가 여기서 언급한 것과 같은 코드를 사용하여 기본적으로 작동하도록 만들 수 있었습니다: Retrieve Topics based on custom field? - #12 by JQ331

아, 네. 'topic-parent’와 같은 사용자 정의 주제 필드를 만들면, 이를 활용할 수 있는 다양한 방법이 있을 것 같습니다. 공유해 주신 링크를 더 자세히 살펴보고, 그 과정에서 루비(Ruby)도 조금 배우게 되길 바랍니다. 감사합니다!