저는 discourse.org의 호스팅을 사용하고 있으므로, 이 경우 플러그인 사용이 불가능합니다. 누구나 볼 수 있는 토픽이 게시되어 있다고 가정해 보겠습니다.
누군가가 “A” 그룹에 속해 있다면 이 콘텐츠를 보고 싶고, 그렇지 않다면 이 다른 콘텐츠를 보고 싶습니다. 그리고 토픽의 일부는 모든 사람이 볼 수 있어야 합니다. 도식적으로 다음과 같습니다…
모든 사람이 볼 수 있는 콘텐츠입니다.
{wishful thinking: A 그룹에만 표시}
특별한 그룹에 소속되어 주셔서 감사합니다!
{/wishful}
{wishful thinking: A 그룹에 속하지 않은 사람만 표시}
가입할 수 있는 특별한 그룹이 있습니다. [자세히 알아보기](…)
{/wishful}
표시할/숨길 콘텐츠를 대상으로 CSS 클래스를 설정하는 테마 컴포넌트를 사용하면 이것이 가능할 것이라고 확신합니다(정확한 방법은 잊어버렸지만요). 이것이 제가 생각해 낼 수 있는 최선의 방법이라면 이렇게 해보겠습니다.
하지만 CSS의 display: none은 효과가 약합니다. 보여서는 안 되는 것을 DOM에서 완전히 사라지게 하고 싶습니다. 가능하다면 서버 측에서 사라지게 하는 것이 좋지만, 최소한 j/s 기반으로 브라우저 측에서 사라지게 하는 것이라도 만족할 것입니다. (CSS의 display: none을 우회하는 것보다 훨씬 더 높은 수준의 지능이 필요합니다.)
지금 바로 자세히 살펴볼 시간은 많지 않지만, 이 테마 컴포넌트가 도움이 될 수 있을 것 같습니다. 이 컴포넌트는 현재 사용자의 모든 그룹을 body 태그 안에 나열해 주기 때문입니다(아마도). 그런 다음 특정 그룹 클래스명이 body 태그에 존재하는지 여부에 따라 CSS 셀렉터를 사용하여 표시/숨기기를 할 수 있을 것입니다.
그리고 이 게시물에서 컴포저(composer)에서 사용할 수 있는 HTML 요소와 컴포저 텍스트를 클래스로 감싸는 방법에 대한 정보와 결합하면 작동할 수 있습니다:
네, 여기서 바로 테스트해 봤는데, 해당 컴포넌트를 다음과 같은 것들과 결합하면 작동할 것입니다:
<span data-group-a>그룹 A 전용 텍스트</span>
<span data-group-b>그룹 B 전용 텍스트</span>
그런 다음 컴포넌트는 시청 중인 사용자의 그룹에 따라 DOM에서 한쪽 DIV를 삭제합니다.
이 방식은 웹 브라우저의 DOM 검사 기능을 통해 쉽게 되돌릴 수 있는 CSS display: none;보다 강력하다고 생각합니다. 이를 우회하려면 페이지 로드 시 실행되는 j/s를 수정해야 하는데, 불가능하지는 않지만 훨씬 어렵습니다.
왜 이런 기능이 필요한가요?
그룹에 속하지 않은 사람들에게 콘텐츠를 부분적으로 공개하기 위해서입니다. (그룹에 가입하려면 유료 구독이 필요하기 때문입니다.)
This is a really cool topic. This first
paragraph is really interesting.
<div data-custom="foobar" data-foobar="<groupname>">
Here's the rest of the content.
</div>
<div data-custom="foobar" data-foobar="!<groupname>">
Hi, sorry to interrupt!
There's more conent here for our paying members...
would you like to read about becoming one?
</div>
그룹에 속한 사람들은 토픽 전체를 단순히 볼 수 있습니다. 유료 구독 제한(paywall)의 흔적이 전혀 없습니다.
그룹에 속하지 않은 사람들은 위 두 DIV에 있지 않은 초기 부분과 유료 구독 제한 화면을 봅니다.
따라서 완전히 공개된 영역에서도 이 기능을 사용하여, 가입하고 로그인하여 유료 멤버가 되면 어떤 것을 얻을 수 있는지 보여줄 수 있습니다.