Может, кто-нибудь подскажет, как автоматически выдавать специальный значок за создание поста, в котором с помощью плагина discourse-math отображается уравнение?
Не знаю, с чего начать.
Может, кто-нибудь подскажет, как автоматически выдавать специальный значок за создание поста, в котором с помощью плагина discourse-math отображается уравнение?
Не знаю, с чего начать.
Привет, @agf1997
Согласен, плагин для математики в Discourse сделан отлично и станет отличным дополнением для сайта.
Один из подходов — нанять разработчика плагинов для Discourse, чтобы он модифицировал математический плагин под ваши нужды: обновлял бы пользовательское поле в базе данных, когда участник форума использует этот плагин.
Затем вы сможете создать простой запрос к базе данных (в панели управления значками) для выдачи значков.
Надеюсь, это поможет.
Это, безусловно, не критически важная функция. Я просто искал простой способ выделить людей, использующих функцию математической верстки, чтобы поощрить других тоже её использовать.
Привет, @agf1997
Для этого потребуется код плагина, как я уже упоминал.
Это означает, что у вас есть два варианта:
Какой бы путь вы ни выбрали, вам нужно будет изменить или расширить плагин math, чтобы обновлять пользовательское поле в базе данных, когда участник форума использует этот плагин.
Надеюсь, это поможет.
Да, вы можете настроить значки для успешных публикаций с формулами Math без необходимости модифицировать плагин.
Сначала вам нужно включить 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!
Очень хороший запрос для бейджа.
Вопрос:
Есть ли у вас список всех символов Ruby :symbols, которые можно использовать в запросе для бейджа, чтобы помочь с триггерами?
Я спрашиваю, потому что вижу, что вы использовали :backfill и :post_id, а когда я смотрю по этой ссылке, то вижу другие используемые символы Ruby:
Есть ли краткая справка по символам Ruby в Discourse, которые можно использовать в запросе для бейджа?
Я нашёл это, связанное с триггерами бейджей (после вашего сообщения выше), что было очень полезно:
В этой статье 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))