discourse-math 플러그인을 사용하여 수식을 렌더링하는 게시물을 작성하면 자동으로 커스텀 배지를 부여할 수 있는 방법을 아시는 분 계신가요?
어디서부터 시작해야 할지 감이 전혀 안 잡힙니다.
discourse-math 플러그인을 사용하여 수식을 렌더링하는 게시물을 작성하면 자동으로 커스텀 배지를 부여할 수 있는 방법을 아시는 분 계신가요?
어디서부터 시작해야 할지 감이 전혀 안 잡힙니다.
@agf1997 님, 안녕하세요.
Discourse 수학 플러그인이 잘 만들어졌으며 사이트의 훌륭한 추가 기능이라는 데 동의합니다.
한 가지 방법은 Discourse 플러그인 개발자에게 비용을 지불하여, 포럼 멤버가 플러그인을 사용할 때 데이터베이스의 커스텀 필드를 업데이트하도록 수학 플러그인을 수정하도록 하는 것입니다.
그 다음, 배지 관리 영역에서 배지를 발급하기 위한 간단한 DB 쿼리를 생성할 수 있습니다.
도움이 되기를 바랍니다.
물론 임무에 치명적인 기능은 아닙니다. 저는 수식 표기 기능을 사용하는 사람들을 강조하는 간단한 방법을 찾아서, 다른 사용자들도 이 기능을 사용하도록 장려하고 싶었을 뿐입니다.
@agf1997 님, 안녕하세요.
앞서 말씀드린 대로, 이를 위해서는 플러그인 코드가 필요합니다.
따라서 두 가지 선택지가 있습니다:
어떤 방향으로 진행하든, 포럼 멤버가 플러그인을 사용할 때 데이터베이스의 커스텀 필드를 업데이트하도록 수학 플러그인을 수정하거나 확장해야 합니다.
도움이 되셨으면 좋겠습니다.
네, 플러그인을 수정하지 않고도 수식 게시글 작성에 성공했을 때 배지를 부여할 수 있습니다.
먼저 사이트에서 기본적으로 배지 SQL을 더 이상 편집할 수 없음을 활성화해야 합니다.
그 다음, 다음 쿼리가 트리거되는 새로운 배지를 생성하세요:
SELECT user_id, MIN(id) AS post_id, current_timestamp AS granted_at
FROM badge_posts
WHERE cooked LIKE '%<span class="math">%' AND (:backfill OR id IN (:post_ids) )
GROUP BY user_id
안녕하세요, @Falco
정말 멋진 배지 쿼리네요.
질문이 있습니다:
배지 쿼리에서 트리거를 발생시키는 데 사용할 수 있는 모든 Discourse :symbols 목록을 가지고 계신가요?
이렇게 묻는 이유는, 귀하가 :backfill과 :post_id를 사용하신 것을 보고, 아래 링크를 확인해 보니 다른 Ruby :symbols가 사용되고 있는 것을 보았기 때문입니다:
배지 쿼리에서 사용할 수 있는 Discourse Ruby symbols에 대한 간결한 참고 자료가 있을까요?
(위 게시물 이후에) 배지 트리거와 관련하여 아래 자료를 찾았으며, 매우 도움이 되었습니다:
해당 Discourse 기사에서는 다음 트리거 헬퍼가 언급되어 있습니다:
이 세 가지가 전부인가요?
도와주셔서 정말 감사합니다!
@Falco 멋지네요! 간단한 질문이 있는데 .. 이전 게시물에도 적용되어야 하나요? "허가된 배지 미리보기"를 클릭하면 "할당할 배지가 없습니다."라는 메시지가 표시됩니다.
"쿼리 계획으로 미리보기"를 클릭하면 다음과 같은 결과가 나옵니다.
GroupAggregate (cost=2021.68..2021.70 rows=1 width=16)
Group Key: p.user_id
-> Sort (cost=2021.68..2021.68 rows=1 width=8)
Sort Key: p.user_id
-> Nested Loop (cost=0.28..2021.67 rows=1 width=8)
Join Filter: (t.category_id = c.id)
-> Nested Loop (cost=0.28..2017.97 rows=1 width=12)
-> Seq Scan on posts p (cost=0.00..2009.66 rows=1 width=12)
Filter: ((deleted_at IS NULL) AND (cooked ~~ '%<span class="math">%'::text) AND (post_type = ANY ('{1,2,3}'::integer[])))
-> Index Scan using topics_pkey on topics t (cost=0.28..8.30 rows=1 width=8)
Index Cond: (id = p.topic_id)
Filter: ((deleted_at IS NULL) AND visible)
-> Seq Scan on categories c (cost=0.00..3.35 rows=28 width=4)
Filter: (allow_badges AND (NOT read_restricted))