앞서 말씀드리자면, 이것은 before-create-topic 플러그인 아웃렛에서 버튼을 생성하기 위해 카테고리 custom_fields를 알아야 하는 플러그인용입니다. 또한 after-topic-footer-main-buttons 커넥터에서도 이 값을 사용해야 합니다.
아마도 매우 단순한 것을 놓치고 있는 것 같습니다…
초기화자(initializer)에서 다음 코드를 사용하여 카테고리 클래스를 가져올 수 있습니다… 거의 성공하긴 하는데요.
const controller = api.container.lookup("controller:navigation/category");
이를 출력하면 여러 속성을 볼 수 있습니다. 개발자 콘솔에서는 category: (...)를 볼 수 있습니다. (..)를 클릭하면 custom_fields와 제가 찾고 있는 필드를 확인할 수 있습니다. 플러그인 API를 통해 이 값에 접근하는 방법은 무엇일까요?
속성을 가져오는 다양한 방법을 시도해 보았지만, 모두 undefined를 반환합니다.
pfaffman
(Jay Pfaffman)
7월 8, 2021, 12:42오전
2
한 발 물러서서 무엇을 하려는 건지 설명해 주시면 좋겠습니다. 필요한 데이터는 대부분 이미 사용 가능한 상태입니다. 그렇지 않다면, 테마에서 Ajax를 이용해 데이터를 가져오거나, 플러그인에서 직렬화기에 추가하는 방법을 사용할 수 있습니다.
카테고리에서 커스텀 필드를 가져오려고 하고 있습니다. 전에 명확하지 않아 죄송합니다. OP에 추가 정보를 업데이트했습니다.
pfaffman
(Jay Pfaffman)
7월 8, 2021, 7:07오후
4
이전보다 훨씬 많은 정보를 알게 되었네요… . . plugin.rb에 이렇게 하는 거라면:
add_to_serializer(:category, :your_plugin) do
some_stuff
end
하지만 제가 생각하기에, 여러분이 하려는 일은 시리얼라이저에 뭔가를 추가할 가능성이 높은 다른 플러그인들을 살펴보는 것입니다. Topic Ratings Plugin 또는 https://meta.discourse.org/t/topic-list-previews/101646를 참고하는 것이 좋겠습니다. 아마도 “명백한” 해결책이 나올 거예요 (하지만 저처럼 다른 “명백한” 일들을 몇 시간 동안 해본 후에야 말이죠).
해당 변수는 이미 직렬화기에 추가되어 있습니다. 저는 이 변수들에 JavaScript 내에서 접근하려고 하고 있습니다. 원래 게시물에서 언급한 controller 변수에서 값을 가져올 수 있을 것 같았지만, 어떻게 접근해야 하는지 이해가 되지 않습니다.