Página inicial personalizada para Grupos

Overview

When installed and added to the active theme, this theme component enables you to control the ‘homepage’, allowing it to be different from the set of pages Discourse allows by default, as well as having different groups have different “homepages” (e.g., group members care only or mostly about a particular category). This can be for all users, anon (non-logged in), mobile users, or according to a user’s primary group. Initially developed by @pfaffman. See User-specific Discourse home page.

Use-cases:

  1. You want something other than the ‘normal’ homepage
  2. You want a different homepage for Anonymous users
  3. You want a different homepage for Mobile users
  4. You have a group of folk only interested in using a small slice of your instance. They want to only see their specific category.
  5. Temporarily redirect a group of your punters to a special event or the like.
  6. Have different landing pages for different groups.

Settings

custom default homepage

Allows you to set a global custom homepage.

anon page

This enables you to use a specified page for those who aren’t logged into your site. Over-rides the global one above.

mobile homepage

As per Force Mobile Homepage this allows you to set a different homepage for mobile users. This will override the options chosen above.

group page map

This allows for multiple entries. Each entry should be of the format group_name:path , where group_name is the group slug (not the group Full Name ) and the path is the desired home page (e.g., “/c/great-category/4”).

Ensure that the target users have the specified group denoted as their primary group and you are away. If the theme setting or the user primary group is changed, a reload will be required to have the change take effect.

:warning: The users with a specified group as primary will not be able to reach your ‘normal’ homepage unless you ensure that there is a way for them to do that (such as the native sidebar functionality)

Known Issue - limited to relative URLs

And that doesn’t include Page Publishing, unfortunately. However, you can workaround this by creating a permalink that will redirect to the external site and point to that permalink.

  • @pfaffman tested this with a permalink at /go-google that redirects to https://google.com and something like group-name:/go-google
  • you create Permalinks via the admin settings /admin/customize/permalinks
42 curtidas

Este é um trocador de grupo de jogo! :crazy_face:

Bom trabalho! TC bastante poderoso…

Temos alguns ajustes na fase de PR, abordando estes:

E também adicionando o controle da página inicial móvel, caso você queira que ela seja diferente (conforme Force Mobile Homepage).

Isso aumenta significativamente seu poder, então espero que gostem.

6 curtidas

Olá!! Isso é incrível!! :slight_smile:
Muito obrigado, isso é realmente importante para o meu caso (caso de uso 1).
Tenho que perguntar, sobre “Os usuários com um grupo especificado como primário não poderão acessar sua página inicial ‘normal’”, o que você quer dizer com “fornecer ativamente uma maneira para que eles o façam”?
Além disso, em linha com este conceito, também seria útil mostrar na página inicial uma ordem específica das categorias dependendo do grupo a que o usuário pertence. Por exemplo, mostrar a categoria deles no topo e todas as outras abaixo. Você acha que isso é possível? (se já não for?).

Isso significa que qualquer página inicial que você definir nas configurações do site será substituída. Portanto, se você quiser que os usuários possam acessá-la, precisará garantir que haja um link para chegar lá… De alguma forma.

Não consigo imaginar como isso funcionaria (talvez eu tenha uma imaginação ruim :man_shrugging:). O caso de uso que consigo pensar faz com que os usuários tenham uma categoria diferente definida como página inicial se estiverem em um grupo. Como um site de carros poderia permitir que você escolhesse o grupo Ford como sua página inicial.

Se você quiser coisas diferentes disponíveis para grupos diferentes, acho que faria isso tendo categorias padrão silenciadas.

1 curtida

Olá Jay!
Obrigado pela sua resposta :slight_smile:
Digamos que eu gostaria de ter diferentes categorias “fixadas” no topo, dependendo do grupo a que um usuário pertence. Quero dizer, cada usuário diferente veria uma categoria “fixada” diferente. Não quero ocultar as outras categorias do usuário, apenas tornar facilmente visível e prontamente disponível aquela que ele mais usará, logo na página inicial (se possível!).
(Claro, não estou “exigindo” nada aqui, apenas perguntando se é possível com as configurações/componentes disponíveis)

1 curtida

Olá @lisandro_iaffar

Eu tive o exato mesmo caso de uso que postei aqui: Showcased Categories - #18 by jrgong

No meu caso, configurei a categoria do cliente do meu anunciante como página inicial com este TC, mas eles acharam confuso e me pediram para removê-lo novamente. Portanto, acho que o TC de categorias em destaque com tal modificação seria a solução perfeita.

3 curtidas

Olá @jrgong! :slight_smile:
Muito obrigado por me indicar esse tópico! E sim! Seria perfeito! Estou me mudando para lá para apoiar a ideia :muscle:
Obrigado novamente!

Acabei de enviar uma atualização que lida com o preLoadStore novo, que estava causando a exibição incorreta dos tópicos na primeira carga.

5 curtidas

Olá Jay, notei um erro após minha última atualização do Discourse:

1 curtida

Tem certeza de que essa é a versão mais recente no GitHub? (Não o seu fork ou uma versão estática/local?) Acabei de executar uma atualização e está funcionando. Também olhando o código, há apenas um lugar onde api é usado:

        const user = api.getCurrentUser();

e isso está dentro de um bloco que define api.

Isso é estranho. De qualquer forma, removi-o dessa instância, pois era supérfluo. E parece estar funcionando bem após a atualização em outra instância. Estranho. Obrigado por dar uma olhada!

Alguma ideia de como ele interage com a barra lateral? Preciso experimentá-lo, pois parece que o problema de precisar de uma rota de volta para a página inicial do fórum foi resolvido por ele.

1 curtida

Eu não testei, mas não consigo imaginar por que não. Por favor, note que posso não ter uma imaginação muito boa.

1 curtida

Estou testando isso agora, mas tenho dois comentários:

  1. O caminho anônimo não está funcionando para nós - ele requer o mesmo formato que o mapa de grupo?
  2. Seria ótimo se houvesse uma configuração padrão que se aplicasse a todos.

1 curtida

Hmm. Eu pensei que tinha testado isso na lista de commits.

De fato. Acho que as pessoas que precisavam disso não precisaram mudar para uma página inicial não suportada.

Vou tentar dar uma olhada amanhã, embora possa ser na semana que vem.

1 curtida

Para sua informação, funcionou para mim quando eu estava mexendo nisso ontem (eu tinha tag/featured/ lá)

Está funcionando bem para mim. Ele só precisa do caminho relativo.

Mas eu tive o mesmo problema que você até que realmente adicionei o componente ao Tema! Você fez isso?

Sim, eu pensei que precisava ser adicionado. Aqui está:

2 curtidas

Sim, o mesmo tema funciona bem quando logado, apenas não para anônimos. E só para ter certeza: a URL relativa precisa começar com /? Perguntando porque Jammy usou tag/featured/ enquanto eu uso /c/artwork/8.

Consegui fazer funcionar - foi um erro meu.

Perfeito, obrigado! Ainda não está aparecendo para mim como uma atualização - deveria?

1 curtida

Está no meu fork. Você pode instalá-lo diretamente de cá se quiser até que o Jay o mescle:

Funciona com ou sem /

Aliás

A maneira como você o configurou não funcionará, pois os usuários não podem ter nenhum dos grupos de nível de confiança como seu grupo principal.

Pensando nisso - ele é adicionado ao tema padrão do site (que os anônimos usam)? Já me deparei com isso ao adicionar um componente ao meu tema ‘dev’, mas não ao tema padrão.

2 curtidas

Sim, encontrei o erro - estava relacionado a isso :man_facepalming:

2 curtidas