Kann sich jemand eine Möglichkeit ausdenken, wie man automatisch eine benutzerdefinierte Auszeichnung für einen Beitrag vergeben kann, der mit dem discourse-math-Plugin eine Gleichung rendert?
Ich habe keine Ahnung, wo ich anfangen soll.
Kann sich jemand eine Möglichkeit ausdenken, wie man automatisch eine benutzerdefinierte Auszeichnung für einen Beitrag vergeben kann, der mit dem discourse-math-Plugin eine Gleichung rendert?
Ich habe keine Ahnung, wo ich anfangen soll.
Hallo @agf1997,
Ich stimme zu: Das Discourse-Mathematik-Plugin ist gut gemacht und eine großartige Ergänzung für eine Website.
Eine Möglichkeit wäre, einen Discourse-Plugin-Entwickler zu beauftragen, das Mathematik-Plugin so anzupassen, dass bei der Nutzung durch ein Forum-Mitglied ein benutzerdefiniertes Feld in der Datenbank aktualisiert wird.
Anschließend könntest du eine einfache Datenbankabfrage (im Bereich der Badges-Verwaltung) erstellen, um Badges auszustellen.
Ich hoffe, das hilft dir weiter.
Es ist definitiv kein mission-kritisches Feature. Ich habe nur nach einer einfachen Möglichkeit gesucht, Personen hervorzuheben, die die Mathematik-Formatierungsfunktion nutzen, um andere ebenfalls dazu zu ermutigen, sie zu verwenden.
Hallo @agf1997,
Wie bereits erwähnt, benötigen Sie dafür Plugin-Code.
Das bedeutet, Sie haben zwei Möglichkeiten:
Egal für welche Richtung Sie sich entscheiden: Sie müssen das Mathematik-Plugin so anpassen oder erweitern, dass ein benutzerdefiniertes Feld in der Datenbank aktualisiert wird, wenn ein Forenmitglied das Plugin verwendet.
Ich hoffe, das hilft weiter.
Ja, du kannst Abzeichen für erfolgreiche Math-Beiträge vergeben, ohne das Plugin ändern zu müssen.
Zuerst musst du auf deiner Seite die Standardkonfiguration aktivieren, dass Badge-SQL nicht mehr bearbeitet werden kann.
Danach erstelle ein neues Abzeichen, das durch folgende Abfrage ausgelöst wird:
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
Hey @Falco
Das ist wirklich eine tolle Badge-Abfrage.
Frage:
Hast du eine Liste aller Discourse :symbols, die in einer Badge-Abfrage verwendet werden können, um Trigger auszulösen?
Der Grund für meine Frage ist, dass ich gesehen habe, dass du :backfill und :post_id verwendet hast. Wenn ich mir diesen Link ansehe, sehe ich weitere Ruby ![]()
Gibt es eine kompakte Referenz für die Discourse Ruby-Symbole, die in einer Badge-Abfrage verwendet werden können?
Ich habe dies gefunden, das sich auf Badge-Trigger bezieht (nach deinem obigen Beitrag), was sehr hilfreich war:
In diesem Discourse-Artikel werden folgende Trigger-Helfer erwähnt:
Sind diese drei „alle, die es gibt"?
Vielen Dank für deine Hilfe!
@Falco Super! Eine kurze Frage .. sollte das auch bei früheren Beiträgen funktionieren? Wenn ich auf “Vergabevorschau für Badges” klicke, erhalte ich “Keine Badges zur Zuweisung vorhanden.”
Beim Klicken auf “Vorschau mit Abfrageplan” erhalte ich:
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))