Sto cercando di monitorare gli accessi degli utenti sul forum del nostro cliente. In pratica, vorrei creare un event listener (in vanilla JS) che esegua una funzione JavaScript ogni volta che un utente accede al forum.
Puoi usare qualcosa di simile nella scheda common > header di un componente del tema.
<script type="text/discourse-plugin" version="0.8">
const user = api.getCurrentUser();
// l'utente è già loggato, esci
if (user) {
return;
}
// fai il tuo lavoro qui...
const clickCallback = (clickEvent) => {
console.log(clickEvent);
alert("l'utente sta effettuando l'accesso");
// ..
// ..
};
api.onAppEvent("modal:body-shown", (event) => {
const loginButton = document.querySelector("#login-button");
if (loginButton) {
loginButton.addEventListener("click", clickCallback, { once: true });
}
});
</script>
Aggiungi il codice di cui hai bisogno nella funzione clickCallback e verrà eseguito quando l’utente fa clic sul pulsante Login all’interno della finestra modale. Attualmente quell’ID manca su mobile, ma verrà corretto quando questo verrà unito.