Restringir banner de boas-vindas à página inicial do usuário

Tenho um usuário perguntando se é possível restringir o banner apenas à página inicial, para que se ele tiver “latest” nos favoritos, ele não apareça? Atualmente, parece que ele aparece em ambas as instâncias.

2 curtidas

Sim, está nas configurações do Banner de Link de Boas-Vindas:

Você quer dizer, se eles definirem uma página personalizada (último, categorias, o que for) como página inicial em seu próprio perfil?
Então esta página arbitrária é considerada a “página inicial” para o usuário, e assim o banner de boas-vindas aparecerá para eles em sua nova página inicial.

Se a página inicial padrão do seu site for /categories e você quiser que o banner de boas-vindas apareça apenas em /categories, independentemente das preferências de interface dos usuários, talvez você possa definir mostrar em como “discovery” ou “all” e usar javascript para ocultar o banner de boas-vindas em outras páginas que não aquela em que você deseja mostrá-lo.

Mas atualmente não sei como identificar de forma confiável a página atual em que estamos (incluindo quando carregamos uma página pela primeira vez e quando mudamos a página) para ocultar dinamicamente o Banner de Boas-Vindas.

Ficarei feliz em tentar isso mais tarde (:sleeping:), mas talvez isso possa ser um começo:

2 curtidas

Ah, muito obrigado, sim, alguns dos meus líderes comunitários que têm o layout padrão definido como o mais recente, prefeririam que o banner aparecesse apenas na página de categorias, por exemplo. Revisarei o link que você compartilhou.

2 curtidas

Ok, aqui está uma solução funcional. No meu exemplo, o Banner de Boas-Vindas será exibido apenas na página /latest, independentemente das configurações de interface dos usuários. Vou deixar você personalizá-lo para exibi-lo apenas na página /categories. :slight_smile:

  1. Defina a configuração show on do Welcome Link Banner como “all” ou “discovery”, dependendo das páginas em que você deseja que o banner seja exibido.

  2. Adicione este script ao seu tema:

    <script type="text/discourse-plugin" version="1.4.0">
        //mostra o banner de boas-vindas apenas na página /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. Adicione este CSS ao seu tema:

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

Referência utilizada:

8 curtidas

Obrigado por isso, muito, muito obrigado! :raised_hands:

3 curtidas

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