Ich möchte ein benutzerdefiniertes Abzeichen erstellen, dem diese Regeln hinzugefügt werden. Das bedeutet einfach, dass der Benutzer, wenn er die folgenden Dinge erreicht, automatisch das entsprechende Abzeichen erhält.
Benutzer müssen die folgenden Dinge/Regeln erfüllen:
Der Benutzer muss mindestens 2 Beiträge erstellt haben
Der Benutzer muss ein Profilbild hochgeladen haben
Der Benutzer muss mindestens einen Beitrag geliked haben
Hinweis: Ich habe gesehen, dass einige Abzeichen mit Hilfe von SQL-Abfragen erstellt wurden. Da ich neu in diesem Bereich bin, sagen Sie mir bitte, wo ich SQL-Abfragen (falls erforderlich) einfügen muss, um die oben genannten Regeln zu erfüllen.
Hey, das ist wirklich hilfreich.
Ich habe die SQL-Abfrageoption aktiviert, bin aber danach nur noch bei einer Kleinigkeit hängen geblieben, dann bin ich bereit.
Wie kann ich die Datenbank anzeigen, da meine benutzerdefinierte Abzeichenregel komplex ist, deshalb benötige ich ein paar Dinge:
Wie kann ich die Datenbank anzeigen, damit ich meine eigene Abfrage erstellen kann?
Wie kann ich diese Abzeichen testen, nachdem ich die Abfragen erstellt habe?
Bitte beantworte diese beiden Dinge, danach kann ich in Frieden schlafen.
Ich habe das Plugin installiert und den folgenden SQL-Befehl ausgeführt, der mir die Benutzer liefert, die diese 3 Regeln erfüllen, aber ich weiß nicht, wie ich ihn in einen Trigger umwandeln kann, wenn ein Benutzer auf den Beitrag reagiert.
SQL-Befehl - select users.username, user_stats.user_id from user_stats Inner Join users ON user_stats.user_id = users.id where post_count = 2 AND likes_given = 1 AND uploaded_avatar_id > 0
Bitte helfen Sie mir, dies zu beheben. Wenn ich dies einmal erledigen kann, kann ich auch meine anderen benutzerdefinierten Abzeichen mit weniger Aufwand erstellen. @Lhc_fl
Dies ist ein SQL-Code von „Trigger: Täglich aktualisieren“;
SELECT st.user_id user_id, current_timestamp granted_at
FROM user_stats st
JOIN users u
ON st.user_id = u.id
WHERE st.post_count >= 2 AND st.likes_given >= 1 AND u.uploaded_avatar_id > 0
Die anderen Trigger hängen von etwas Bestimmtem ab, und ich empfehle nicht, sie zu verwenden, es sei denn, Sie finden einen SQL-Experten. (Ich bin selbst nicht mit SQL vertraut)
Bezüglich 1? handelt es sich um Tabellen-Aliasnamen.
Sehen Sie die Zeile FROM user_stats st? Das teilt der Abfrage mit, dass st eine Abkürzung für die Tabelle user_stats ist.
Dasselbe gilt für die JOIN-Anweisung, wo users u steht. Es besagt, dass u in der Abfrage ein Alias für die Tabelle users in dieser Abfrage ist. Aliase werden verwendet, um Abfragen zu vereinfachen und weniger Tipparbeit zu ermöglichen, was die Fehlerwahrscheinlichkeit verringert.
Bezüglich 3: Wenn Sie diese Option aktivieren, wird das Abzeichen vom Konto des Benutzers entfernt, wenn er aufgrund der Abfrage nicht mehr für ein Abzeichen qualifiziert ist.
Die Abfrage läuft alle 24 Stunden, basierend auf der Tageszeit, zu der Sie den Container gestartet haben. Ich habe also eine Instanz, die sie ungefähr um 0:00 UTC ausführt, und eine andere Instanz, die sie kurz nach 6:00 UTC ausführt.
Können wir die Zeiten ändern, zu denen diese Abfrage ausgeführt wird, oder können wir diese Abfrage so ändern, dass sie Auslöser: Wenn der Benutzer auf einen Beitrag reagiert oder wenn der Benutzer einen Beitrag bearbeitet oder erstellt?
Wenn möglich, ändern Sie bitte die Abfrage, da ich neu in diesem Discourse-System bin. Wenn Sie mir einmal helfen können, kann ich beim nächsten Mal meine eigenen benutzerdefinierten Abzeichen erstellen.