Discourse Filtered Topics List를 통해 이러한 홈페이를 만들 수 있는 테마 컴포넌트가 있지만, 단점이 있다면 특정 시간 프레임에서만 작동한다는 것입니다. 그래서 매일 시간 프레임을 변경해야 합니다.
즉, 현재는 다음과 같이 날짜를 추가할 수 있는 방식으로 작동합니다:
activity-before:YYYY-MM-DD 지정된 날짜보다 이전의 최신 활동(bump)이 있는 주제
activity-after:YYYY-MM-DD 지정된 날짜보다 이후의 최신 활동(bump)이 있는 주제
created-before: YYYY-MM-DD 지정된 날짜보다 이전에 생성된 주제
created-after:YYYY-MM-DD 지정된 날짜보다 이후에 생성된 주제
하지만 이렇게 하면 항상 날짜를 변경해야 합니다. 포럼에서 이 문제를 해결할 수 있는 대안이 있을까요?
네, @gormus 님이 관심 있으시다면 Filtered Topic Lists 에 “중복 항목 숨기기” 기능을 추가하는 것은 그리 복잡하지 않을 것입니다. findFilteredTopics 액션을 수정하여 모든 토픽 ID를 리스트에 저장한 뒤, 중복을 필터링해 내는 방식으로 구현할 수 있습니다.
다만, 10개의 토픽 목록을 원했는데 중복이 제거된 후 5개만 남을 수도 있다는 단점이 있습니다. 설정에서 지정한 수보다 몇 개 더 가져오는 방식으로 이 문제를 부분적으로 완화할 수 있을 것입니다.
이전에도 여러 프로젝트의 홈페이지에 필터링된 목록을 추가한 경험이 있습니다. 겹치는 필터를 가진 여러 개의 “최근” 목록을 채우려면, 처음부터 매우 활발한 커뮤니티가 있어야 한다는 점을 경고하고 싶습니다. 커뮤니티가 그만큼 활발하다면, 동적인 홈페이지를 구축할 때 활용할 수 있는 콘텐츠도 훨씬 풍부해집니다. 그런 경우, 서로 다른 목록으로 구성된 블록은 오히려 정적인 느낌을 주고 시각적으로 덜 매력적으로 보일 수 있습니다.
다만, 조금 다른 관점에서 접근한다면 수동 시간 필터가 적용된 하나 또는 두 개의 목록만 사용하는 것도 고려해 볼 수 있습니다. 이는 사용자에게 오히려 더 동적인 느낌을 줄 수 있습니다. 아래와 같은 뷰를 생각해 보세요: