Limita il banner di benvenuto alla homepage dell'utente

Ho un utente che chiede se sia possibile limitare il banner solo alla homepage, in modo che se ha “latest” nei preferiti non venga visualizzato? Attualmente sembra apparire in entrambi i casi.

2 Mi Piace

Sì, è nelle impostazioni del banner del link di benvenuto:

Intendi dire, se impostano una pagina personalizzata (latest, categories, whatever) come loro homepage nel loro profilo?
Allora questa pagina arbitraria è considerata come “homepage” per l’utente, e quindi il banner di benvenuto apparirà loro nella loro nuova homepage.

Se la homepage predefinita del tuo sito è /categories e vuoi che il banner di benvenuto appaia solo su /categories, indipendentemente dalle preferenze dell’interfaccia utente, forse potresti impostare mostra su su “discovery” o “all” e usare javascript per nascondere il banner di benvenuto su pagine diverse da quella su cui vuoi mostrarlo.

Ma al momento non so come identificare in modo affidabile la pagina corrente su cui ci troviamo (incluso quando carichiamo una pagina per la prima volta e quando cambiamo pagina) per nascondere dinamicamente il Welcome Banner.

Sarei felice di provare più tardi (:sleeping:), ma forse questo potrebbe essere un inizio:

2 Mi Piace

Ah, molti grazie, sì, alcuni dei miei leader della community che hanno impostato il layout predefinito su “latest” preferirebbero che il banner apparisse solo nella pagina delle categorie, ad esempio. Esaminerò il link che hai condiviso.

2 Mi Piace

Va bene, ecco una soluzione funzionante. Nel mio esempio, il banner di benvenuto verrà visualizzato solo sulla pagina /latest, indipendentemente dalle impostazioni dell’interfaccia utente degli utenti. Ti lascerò personalizzarlo per visualizzarlo solo sulla pagina /categories. :slight_smile:

  1. Imposta l’impostazione mostra su del banner del link di benvenuto su “tutti” o “discovery”, a seconda delle pagine in cui desideri che il banner venga visualizzato.

  2. Aggiungi questo script al tuo tema:

    <script type="text/discourse-plugin" version="1.4.0">
        // mostra il banner di benvenuto solo sulla pagina /latest
        api.onPageChange(() => {
            const router = api.container.lookup('service:router');
    
            if (router.currentRoute.name === 'discovery.latest') {
                document.body.classList.add('route-discovery-latest');
            } else {
                document.body.classList.remove('route-discovery-latest');
            }
        });
    </script>
    
  3. Aggiungi questo CSS al tuo tema:

    body:not(.route-discovery-latest) .welcome-link-banner-connector {
       display: none;
    }
    

Riferimento utilizzato:

8 Mi Piace

Grazie mille, grazie mille! :raised_hands:

3 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.