API를 호출하여 해당 사용자의 무시된 사용자 목록을 가져온 다음, 해당 사용자 ID가 포함된 주제를 숨기거나 주제 목록이 렌더링되기 전에 해당 주제들을 제거하는 것이 가능한가요?
현재까지 구현해 놓은 내용은 다음과 같습니다.
다음 게시글에서 영감을 받았습니다.
https://meta.discourse.org/t/topics-created-by-ignored-users-showing-on-homepage/170366/14
그리고 이 테마 컴포넌트를 함께 사용했습니다.
모바일에서도 정상적으로 작동합니다.
추가적으로, 다음 줄을
아래와 같이 수정하면
<a href="{{topic.lastPostUrl}}" data-user-card="{{topic.last_poster_username}}" data-user-id="{{topic.creator.username}}">{{avatar topic.lastPosterUser imageSize="large"}}</a>
그리고 제 코드를
https://github.com/notedboi/Discourse-Hide-Ignored-Users/blob/main/common/head_tag.html#L13
아래와 같이 변경하면
let tr = $('*[data-user-id="' + ignored[u] + '"]');
마지막 게시자의 아바타/카드 뷰를 유지하면서 생성자가 만든 토픽은 제거할 수 있습니다.
제가 가장 우려하는 점은 스크립트가 500ms마다 계속 체크하면서 메모리를 과도하게 차지할 수 있다는 것입니다.
모바일 카테고리 토픽에서 무시된 사용자를 제거하는 방법도 찾고 있습니다.
<script type="text/x-handlebars" data-template-name="components/mobile-category-topic">
<td class="main-link" data-user-id="{{topic.creator.username}}">
<div class="topic-inset" >
{{raw "topic-status" topic=topic}}
{{topic-link topic}}
{{#if topic.unseen}}
<span class="badge-notification new-topic"></span>
{{/if}}
<span class={{cold-age-class topic.last_posted_at}} title={{raw-date topic.last_posted_at}}>{{format-age topic.last_posted_at}}</span>
</div>
</td>
<td class="num posts">{{raw "list/post-count-or-badges" topic=topic postBadgesEnabled="true"}}</td>
</script>
이 뷰에 data-user-id를 추가하려고 시도했지만 작동하지 않습니다. 틀린 템플릿을 보고 있는 건가요?
업데이트: 문제를 찾았습니다. category.topic에서 전달되는 topic 객체에는 토픽 작성자의 id가 포함되어 있지 않고, topic 객체의 어떤 속성도 토픽을 제거하는 플래그로 사용할 수 없어 막혀 있습니다. 도움이 필요합니다
!
setInterval을 사용하지 않고 업데이트를 시도하고 있습니다. 하지만 setInterval을 사용하려는 분들을 위해, 마지막 업데이트에서는 **Topic Thumbnails**와 Topic List Excerpts 모두를 지원합니다.
코드에 문제가 있어서 포럼이 매우 느려진 것 같습니다. 혹시 의견 있으신가요? @th21
너무 오래되어 사용에 어려움이 있을 수 있으니, 원하시면 새로 만든 컴포넌트를 사용해 보세요.
이것은 다음에 기반을 두고 있습니다:
오래전부터 이 컴포넌트를 사용해 왔고, Discourse 코어에 포함되어야 한다고 생각합니다. 만들어 주셔서 정말 감사합니다. 불행히도 새로운 Glimmer 주제 목록에 맞게 업데이트가 필요하기 때문에 이제 경고가 표시되고 있습니다:
확인해 볼게요.