It also seems to work if you replace api.onPageChange(() => {
with $( document ).ready(function() {
and then the script won’t load on every page, but I never know for sure where I need api.onPageChange(() => { .
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?