Ciao famiglia Discourse! Spero che esista una soluzione semplice per questo! Ho la sensazione che la risposta sia che debba usare un po’ di JavaScript.
Abbiamo 4 pulsanti nella sezione “dopo l’intestazione” delle impostazioni CSS/HTML del nostro pannello di amministrazione.
Vorremmo che alcuni pulsanti fossero visibili solo ai membri di gruppi specifici, mentre gli altri pulsanti siano visibili a tutti gli utenti.
Ad esempio: diciamo che vogliamo che quei 4 pulsanti principali siano visibili a tutti, ma vorremmo che un altro pulsante fosse visibile solo ai membri di un determinato GRUPPO.
Non conosco il JavaScript, quindi se è davvero semplice e qualcuno potesse fornire un frammento di codice o qualcosa del genere, sarebbe di grande aiuto
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?