Ich versuche, Benutzeranmeldungen auf dem Forum unseres Kunden zu verfolgen. Im Grunde möchte ich einen Event-Listener (in Vanilla JS) erstellen, der jedes Mal eine JavaScript-Funktion ausführt, wenn sich ein Benutzer im Forum anmeldet.
Sie können etwas Ähnliches im Tab common > header einer Theme-Komponente verwenden.
<script type="text/discourse-plugin" version="0.8">
const user = api.getCurrentUser();
// Benutzer ist bereits angemeldet, abbrechen
if (user) {
return;
}
// erledigen Sie Ihre Arbeit hier...
const clickCallback = (clickEvent) => {
console.log(clickEvent);
alert("Benutzer meldet sich an");
// ..
// ..
};
api.onAppEvent("modal:body-shown", (event) => {
const loginButton = document.querySelector("#login-button");
if (loginButton) {
loginButton.addEventListener("click", clickCallback, { once: true });
}
});
</script>
Fügen Sie den benötigten Code in die Funktion clickCallback ein, und er wird ausgelöst, wenn der Benutzer auf die Schaltfläche Login im Modal klickt. Diese ID fehlt derzeit auf Mobilgeräten, aber das wird behoben, wenn dies zusammengeführt wird.