Ciao,
Stavo cercando qualcosa di simile, ma escludendo alcuni gruppi, quindi ho provato con ChatGPT e la risposta è stata:
Per creare un tema HTML in Discourse che attivi uno script escludendo gruppi specifici, dovrai utilizzare le opzioni di personalizzazione del tema di Discourse insieme a JavaScript per gestire le esclusioni di gruppo. Discourse fornisce
api.getCurrentUser()per recuperare i dettagli dell’utente, inclusi i suoi gruppi, che possono essere utili per attivare condizionalmente il tuo script.Ecco un esempio di come potresti implementarlo nella sezione
</head>del tuo tema o componente:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
// Recupera i dettagli dell'utente corrente
const currentUser = api.getCurrentUser();
if (currentUser) {
// Elenco dei nomi dei gruppi che si desidera escludere dall'esecuzione dello script
const excludedGroups = ['group1', 'group2'];
// Ottieni i gruppi dell'utente
const userGroups = currentUser.groups.map(group => group.name);
// Verifica se l'utente appartiene a un gruppo escluso
const isExcluded = excludedGroups.some(group => userGroups.includes(group));
if (!isExcluded) {
// La tua logica di script personalizzata qui
console.log('Script eseguito per questo utente.');
// Esempio: attiva qualsiasi logica personalizzata per gli utenti non esclusi
// customScriptFunction();
} else {
console.log('L\'utente appartiene a un gruppo escluso, script non eseguito.');
}
}
});
</script>
Spiegazione:
- api.onPageChange(): Esegue lo script ogni volta che la pagina cambia.
- api.getCurrentUser(): Recupera i dettagli dell’utente attualmente connesso.
- excludedGroups: Elenca i gruppi che si desidera escludere.
- userGroups.includes(group): Verifica se l’utente appartiene a un gruppo escluso.
- Esecuzione condizionale dello script: Lo script verrà eseguito solo se l’utente non fa parte di alcun gruppo escluso.
Puoi sostituire customScriptFunction(); con qualsiasi script di cui hai bisogno. Fammi sapere se hai bisogno di ulteriori aggiustamenti!
Cioè, la mia mente è completamente sconvolta da questo
. Non l’ho ancora provato, ma il codice di ChatGPT è corretto?