Discourse 카테고리 홈 🏠

요약:

커뮤니티에서 각 사용자에게 특정 홈페이지(“홈 카테고리”)를 지정합니다.

이 플러그인은 단일 Discourse 인스턴스 내에서 사용자의 주 그룹(Primary Group)에 따라 특정 “홈페이지”(즉, 카테고리)를 설정할 수 있게 해줍니다.

:link: GitHub: 리포지토리 https://github.com/merefield/discourse-category-home
:arrow_right: 설치: 플러그인 설치 가이드를 따르세요.

이 플러그인을 잘 사용하고 계신가요? GitHub에서 :star:를 눌러주세요! :pray:

기능

일반적인 Discourse의 기존 인터페이스 요소만 사용하므로, 이 솔루션은 견고하고 유지보수가 쉽습니다.

설정

일반적인 Discourse 기능을 사용하여 설정합니다:

  • 몇 개의 카테고리 “홈” :houses:을 원하든 결정하고, 존재하지 않는 경우 생성합니다:
  • 이미 존재하지 않는 한, 각각에 대해 별도의 그룹을 생성합니다
  • 사용자를 해당 각 그룹에 적절히 추가합니다
  • 해당 그룹을 각 사용자의 주 그룹(Primary Group)으로 설정합니다
  • 각 그룹에 해당 카테고리에 대한 권한을 부여합니다.

완료되었습니다! :tada:

이제 누군가가 커뮤니티 홈페이지로 이동하면, 그 사용자의 주 그룹이 권한을 가진 카테고리로 리디렉션됩니다.

참고: 반드시 지켜야 할 단순한 규칙이 있습니다: 누군가의 주 그룹이 등록되어 있고, 그 그룹이 단일 카테고리에 권한이 부여되어 있다면, 그 카테고리가 사용자의 홈으로 리디렉션됩니다.

위 링크에서 알 수 있듯이, 이 방식으로 주 그룹을 사용하면 여러 가지 이점이 있습니다. 그중에서도 가장 중요한 것은 다음과 같습니다:

  • 사용자에게 칭호(Title)를 부여할 수 있습니다
  • 사용자에게 플레어(Flair)를 부여할 수 있습니다
  • 사용자의 게시물 스타일을 설정할 수 있습니다

기타 고려 사항

카테고리 홈페이지의 효과를 높이기 위해, 예: Category Banners 와 같이 개별적인 스타일을 적용하여 차별화하세요.

개별 카테고리/주 그룹 권한 확인

주 그룹이 단일 카테고리와만 연관되어 있는지 확인하려면, Discourse의 이 편리한 기본 기능을 사용할 수 있습니다. 예:

목록에 카테고리가 하나만 있는 것이 좋습니다! :+1:

기술적 세부 사항

사용된 정확한 로직은 다음과 같습니다:

   return CategoryGroup.where(group_id: primary_group).first.category_id

'우회’하는 방법은 가능할 수 있지만, 이 기능이 작동하기를 기대하면서 해당 주 그룹을 여러 카테고리에 사용하는 경우 지혜롭지 않을 수 있으므로, 이 점을 염두에 두고 제 추천을 따르시기 바랍니다.

더 많은 유연성 제공

이 동작을 구성하는 다른 방법에 대한 제안에 열려 있지만, 맞춤형 설정의 양을 제한하고 가능한 한 많은 기본 동작과 데이터를 사용하고자 합니다. 간단하고 우아한 해결책을 생각하신 경우 알려주세요.

플러그인 설치 불가/주 그룹 기능이 작동하지 않는 경우?

플러그인을 설치할 수 없는 경우(제한적인 호스팅 플랜을 사용 중이거나) 또는 주 그룹 구성이 작동하지 않는 경우, 더 많은 맞춤형 구성이 필요하지만 침습성이 적은 이 테마 컴포넌트 대안을 고려해 보세요: Custom Homepage for Groups

24개의 좋아요

app.yml 파일에 이 내용을 추가한 후 재구축을 시도하면 오류 메시지가 표시됩니다.

Pups::ExecError: cd /var/www/discourse/plugins && git clone GitHub - merefield/discourse-category-home: Alters the user's homepage to become the Category of their Primary Group · GitHub failed with return #<Process::Status: pid 391 exit 128>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn’

다른 사용자들에게도 정상적으로 작동하나요?

빌드가 잘 되는 것 같습니다. app.yml의 클론 문법을 확인해 보세요.

누락된 로케일 문자열에 대한 수정을 배포하긴 했습니다 :slight_smile: (하지만 그것이 당신의 문제를 일으킨 것은 아닙니다).

1개의 좋아요

네, 이제 잘 작동합니다. 훌륭한 플러그인 감사합니다. Discourse Doctor로 해결했는데, 지난번에 앱을 다시 빌드할 때 생긴 문제였던 것 같습니다.

1개의 좋아요