생성일순 정렬

이 테마 컴포넌트 설치

이 컴포넌트는 토픽 목록에 정렬 가능한 생성 날짜 열을 추가합니다. 또한 내비게이션 바에 선택적인 “생성됨(Created)” 탭을 추가합니다.

데스크톱 뷰에서는 전체 열이 추가됩니다. 모바일에서는 “생성됨” 정렬이 선택된 경우에만 활동 날짜와 인라인으로 생성 날짜가 표시됩니다(아래 스크린샷 참조).

:information_source: 이 컴포넌트를 사용하기 전에 커뮤니티가 생성 날짜를 알아야 하는지 평가해 보시는 것이 좋습니다. 특정 시간 내에 새로 생성된 토픽을 자동으로 플래그 처리하는 내장 기능이 이미 존재합니다(설정 > 추적 > 토픽에서 사용자가 커스터마이즈 가능).

설정

생성 날짜 정렬 내비게이션 바 항목 활성화

내비게이션 메뉴에 “생성 날짜로 정렬” 내비게이션 바 항목을 추가합니다. 기본값: true

스크린샷

데스크톱

모바일

생성 날짜 필터에서만 열 활성화

생성 날짜 필터 외부에서 생성 날짜 열이 표시되지 않도록 방지합니다. "생성 날짜 정렬 내비게이션 바 항목 활성화"가 true여야 합니다. 기본값: false

홈 페이지에서 내비게이션 바 항목 활성화

홈 페이지에 “생성 날짜로 정렬” 내비게이션 바 항목을 추가합니다. 기본값: true

홈 페이지에서 열 활성화

홈 페이지에 “생성됨” 열을 추가합니다. 기본값: true

내비게이션 바 항목을 표시할 카테고리

“생성 날짜로 정렬” 내비게이션 바 항목을 표시할 카테고리 목록입니다. 비워 두면 모든 카테고리에서 표시됩니다. 기본값: empty

생성 열을 표시할 카테고리

“생성됨” 열을 표시할 카테고리 목록입니다. 비워 두면 모든 카테고리에서 표시됩니다. 기본값: empty

내비게이션 바 항목을 표시할 태그

“생성 날짜로 정렬” 내비게이션 바 항목을 표시할 태그 목록입니다. 비워 두면 모든 태그에서 표시됩니다. 기본값: empty

생성 열을 표시할 태그

“생성됨” 열을 표시할 태그 목록입니다. 비워 두면 모든 태그에서 표시됩니다.
기본값: empty

내비게이션 바 항목 위치

목록에서 내비게이션 바 항목이 위치할 곳을 조정합니다. 기본값: top.

스크린샷

정렬


모바일 뷰

카테고리 및 태그와 함께

호환성 및 참고 사항

모바일에서는 정렬 기능이 이미 크게 제한되어 있으므로, 생성 날짜는 정보 제공 목적으로만 기능합니다. 생성 날짜가 뱀프(bumped) 날짜와 다를 경우에만 추가 필드가 표시됩니다.

토픽 목록 썸네일과의 호환성은 제한적입니다. 목록 스타일에서는 정상적으로 작동합니다. 블로그 스타일에서는 생성 날짜가 우하단으로 이동합니다. 그리드 스타일과 메이슨리 스타일에서는 “생성됨” 필터가 선택된 경우에만 생성 날짜가 보이며, 활동 날짜를 대체합니다. 미니멀 스타일에서는 생성 날짜가 숨겨집니다.

18개의 좋아요

와, 또 하나의 완벽한 플러그인이네요! 포럼을 완전히 바꿔 놓았어요. Discourse Nav Item Icon / Emoji 플러그인과 통합될 수 있다면 정말 좋을 것 같습니다.

3개의 좋아요

그걸로 작동할 것 같아요. :slight_smile:
예를 들어 이렇게 추가하면 됩니다:
emoji:created_date:twitter:spiral_calendar:filter

5개의 좋아요

Don이 설정한 방식으로 설정을 추가하면 작동한다는 것을 확인했습니다!


6개의 좋아요

정말 좋습니다! 불행히도 Topic Thumbnails TC와 함께 잘 동작하지 않는데, 어떤 이유로인지 추가 시간이 표시됩니다:

가운데 하단에 추가된 7시간을 주목해 주세요.

.topic-list .topic-list-data:last-of-type 요소를 숨기면 될 것 같지만, 알려 드리고 싶었습니다 :grin:

수정: 또 다른 이상한 점을 발견했는데, Latest를 클릭하면 Created가 강조되고, Created를 클릭하면 Latest가 강조됩니다 :zany_face:

1개의 좋아요

흠, 흥미롭군. 토픽 섬네일(Topic Thumbnails)과 생성된 토픽 정렬(Created Topic Sort)이 동시에 템플릿에 추가되는 과정에서 생긴 특이한 부작용인 것 같아. 아마 메이슨리(Masonry) 모드와 그리드(Grid) 모드 관련 문제일 수도 있겠다. 테마 컴포넌트 사용 여부를 깔끔하게 감지하는 방법을 알아내면, 단순히 숨기는 대신 CSS로 적절한 조정을 해볼 수 있을지 알아볼게.

최신(latest)과 생성된(created) 항목의 하이라이팅 방식은 정말 이상해 보여. Created는 URL에 /latest?order=created가 있을 때만 하이라이트되어야 하는데… 음…

일부 컴포넌트를 업데이트하여 Topic Thumbnails 컴포넌트와 더 조화롭고(적어도 일치하도록) 보기 좋게 만들었습니다.

블로그 스타일에서는 생성 날짜가 오른쪽 아래로 이동합니다. 생성 날짜를 마지막 활동 날짜 바로 옆에 배치할 수 있는 깔끔한 방법을 찾지 못해 일단 이렇게 처리했습니다. 그리드 스타일과 메이슨리 스타일에서는 ‘생성됨’ 필터가 선택된 경우에만 생성 날짜가 표시되며, 이때 활동 날짜를 대체합니다. 활동 날짜와 생성 날짜를 동시에 표시하도록 시도해 보았지만, 카드가 비좁아 보이는 느낌이 들었습니다. 미니멀 스타일에서는 생성 날짜가 숨겨집니다.

1개의 좋아요

여기에 카테고리 범위를 추가하는 것이 어려울까요? 공지사항 섹션에는 표시하고 싶지만, 일반 토론 등에는 표시할 필요가 없습니다.

1개의 좋아요

전혀 그렇지 않습니다! 네 가지 새로운 설정을 추가하여 내비게이션 바 항목과 열이 어디에 표시되는지 제어할 수 있도록 하는 업데이트를 방금 배포했습니다.

  • 홈페이지에서 내비게이션 바 항목 활성화: 홈페이지에 “생성일순 정렬” 내비게이션 바 항목을 추가합니다.
  • 홈페이지에서 열 활성화: 홈페이지에 “생성일” 열을 추가합니다.
  • 내비게이션 바 항목을 표시할 카테고리: “생성일순 정렬” 내비게이션 바 항목에 표시할 카테고리 목록입니다. 모든 카테고리에 표시하려면 비워 두세요.
  • 생성일 열을 표시할 카테고리: “생성일” 열을 표시할 카테고리 목록입니다. 모든 카테고리에 표시하려면 비워 두세요.

다만, 열 표시 제한은 새로운 주제 목록 변경 사항을 사용하는 사이트에서만 작동한다는 점에 유의하세요.

3개의 좋아요

정말 감사합니다! :star_struck: 이건 최고예요!

이것을 기본 홈 페이지로 설정할 수 있는 방법이 있을까요? 일부 플러그인이 “상단 메뉴” 사이트 설정에 옵션을 추가하는 것을 보았기 때문에, 가능할 것 같다는 생각이 듭니다.

그렇게 하면 CSS로 표준 최신 항목을 숨겨서 효과적으로 대체할 수 있을 것 같습니다.

기본 홈페이지는 다음 JS 코드를 사용하여 설정할 수 있습니다:

import { setDefaultHomepage } from "discourse/lib/utilities";
setDefaultHomepage("/latest?order=created");

상단 메뉴 설정에 해당 옵션을 추가하는 것이 확실히 더 좋습니다. 하지만 마지막으로 확인했을 때, TC(테마 컴포넌트)에서 이를 수행하는 방법은 없는 것 같습니다. 그 사이に変更가 있었는지 확인해 봐야겠습니다.

2개의 좋아요

감사합니다! 이렇게 하면 작동할 것 같지만, url에 %3F_discourse_homepage_rewrite가 추가되어 정렬에 간섭을 일으킵니다. :confounded_face:

2개의 좋아요

setDefaultHomepage("latest?order=created&");를 실행하여 이 문제를 우회할 수 있었습니다.
하지만 이제 문제는 모든 지표가 그렇게 말하고 있음에도 불구하고 실제 정렬이 적용되지 않는다는 점입니다.

그래서 https://meta.discourse.org/t/custom-homepage-for-groups/199623에서 동일한 URL을 시도해 봤는데, 그건 성공했습니다 :tada: 같은 메서드를 사용한다고 확신하는데, 왜 그 컴포넌트의 리다이렉트만 다르게 작동하는지 모르겠습니다.

2개의 좋아요

해결했어요. PreloadStore를 비워줘야 했거든요.

기본 테마를 수정하거나 새 컴포넌트를 추가해서 다음 내용을 JS에 넣을 수 있습니다:

import { apiInitializer } from "discourse/lib/api";
import { setDefaultHomepage } from "discourse/lib/utilities";
import PreloadStore from "discourse/lib/preload-store";

export default apiInitializer((api) => {
  setDefaultHomepage("latest?order=created&");
  PreloadStore.remove("topic_list");
});

그리고 Latest 탭을 제거하려면 이 CSS를 사용하세요:

li.nav-item_latest {
    display: none;
}

루트 홈페이지 URL에 그대로 머물 수 있으면 좋겠는데, 아마 플러그인이 필요할 것 같습니다.

3개의 좋아요

결국 해당 플러그인을 만들었습니다: Created as Default Sort Order
이제 내 홈페이지는 생성일 기준으로 깔끔하게 정렬됩니다. 이 컴포넌트는 여전히 컬럼을 추가하는 데 사용하고 있습니다.

4개의 좋아요

훌륭한 테마 컴포넌트를 만들어 주셔서 감사합니다!

네비게이션 바 항목이 표시될 위치를 설정할 수 있도록 하는 매우 작고 간단한 PR을 작성했습니다.

3개의 좋아요

PR 감사합니다! 병합을 진행했고, 원본 게시물(OP)의 설정 설명도 업데이트했습니다.

1개의 좋아요

이 기능이 태그 뷰에서도 작동할 수 있을까요? 현재 태그를 열면 생성 메뉴 옵션이 사라집니다. 감사합니다!

업데이트! tags_to_display_nav_bar_itemtags_to_display_created_column 설정이 추가되었습니다.

https://github.com/Alteras1/discourse-created-topic-sort/commit/3eeec4ef68ae83d5789afd4bf501fc8329a9db22

4개의 좋아요