Configurações de site personalizáveis por tema já estão disponíveis

Adicionamos uma nova maneira para os desenvolvedores de temas controlarem a experiência de um site. As configurações de site temáticas permitem que os temas substituam um grupo limitado de configurações de site definidas pelo núcleo do Discourse. :gear:

Como as configurações de site temáticas são diferentes?

Já temos os conceitos de configurações de tema e modificadores de tema, então como as configurações de site temáticas são diferentes? Aqui está um breve resumo:

  • Configurações de tema - Estas são configurações personalizadas usadas para controlar a interface do usuário e a funcionalidade dentro do seu tema ou componente e fornecer opções de configuração. Elas não podem alterar a funcionalidade principal do Discourse.
  • Modificadores de tema - Permitem que um tema ou componente modifique funcionalidades selecionadas do lado do servidor do núcleo do Discourse como uma alternativa à criação de um plugin.
  • :sparkles: Configurações de site temáticas (novo) - Permitem que um tema (não componentes) substitua um pequeno subconjunto de configurações de site principais, que geralmente controlam partes da interface do usuário e outras funcionalidades menores. Isso permite que os temas tenham um maior controle sobre a experiência completa do site.

As configurações de site temáticas têm tipos de dados e valores idênticos às configurações de site que elas substituem. Para todos os efeitos, o valor da configuração do site no banco de dados se torna irrelevante, pois cada tema controla esse valor individualmente agora.

Como os administradores podem visualizar e alterar as configurações de site temáticas?

Os administradores podem visualizar e alterar as configurações de site temáticas em dois lugares. Primeiro, em cada página de tema individual, agora há uma seção “Configurações que o tema pode substituir”, como esta, acima da outra seção que mostra as configurações de tema definidas pelo tema:

O ponto indica que o valor foi alterado em relação ao valor padrão da configuração do site. Pressionar “redefinir” alterará o valor da configuração do site do tema para corresponder ao valor padrão da configuração do site.

O segundo local onde os administradores podem visualizar essas configurações é em uma nova página, /admin/config/theme-site-settings:

A partir daqui, os administradores podem ver todas as configurações de site temáticas, qual é o valor padrão da configuração do site e quais temas estão substituindo esse valor. Ao passar o mouse sobre um nome de tema, a interface do usuário mostrará o valor que esse tema definiu.

O que acontecerá com as minhas alterações existentes nas configurações do site?

Se você alterou enable_welcome_banner ou search_experience dos valores padrão em seu site, migraremos automaticamente esses valores para todos os temas que você instalou em seu site, para que nada mude na interface do usuário para seus membros.

Onde elas são definidas?

As configurações de site temáticas são definidas no arquivo principal config/site_settings.yml. Cada configuração de site temática tem a opção themeable: true definida.

Por enquanto, apenas duas configurações de site são temáticas – enable_welcome_banner e search_experience – mas no futuro, provavelmente tornaremos mais configurações de site temáticas.

Como os autores de temas podem controlar os valores padrão?

Os autores de temas podem definir substituições de configurações de site temáticas no arquivo about.json sob uma chave theme_site_settings, como esta:

"theme_site_settings": {
  "enable_welcome_banner": false
}

Qualquer valor aqui será salvo no banco de dados e associado ao tema. Uma vez que um valor tenha sido salvo, as alterações em theme_site_settings no arquivo about.json quando um tema é atualizado não afetarão o valor atualmente salvo no banco de dados, pois não podemos saber se o administrador alterou a configuração nesse ínterim.

Quais são as limitações das configurações de site temáticas?

As configurações de site temáticas são realmente destinadas apenas a controlar elementos da interface do usuário e, ao recuperar seu valor, exigimos um ID de tema, portanto, estas limitações se aplicam:

  • As configurações de site temáticas não podem ser usadas em trabalhos Sidekiq
  • As configurações de site temáticas não podem ser usadas em regras de markdown
  • As configurações de site temáticas serão armazenadas em cache separadamente das configurações do site do cliente usando o ID do tema como chave
  • As configurações de site temáticas substituirão chaves no serviço siteSettings no cliente usando o pré-carregador de aplicativos
  • SiteSetting.client_settings_json não incluirá configurações de site temáticas, em vez disso, você pode chamar SiteSetting.theme_site_settings_json com um ID de tema

Como regra geral, as configurações de site de tema serão apenas para configurações simples que controlam partes da interface do usuário, nada do lado do servidor.

34 curtidas

Muito obrigado por esta atualização! É uma grande ajuda!

Então, só para confirmar, isso mudará as configurações que não foram manuais?

7 curtidas

O que acontece se eu alterar enable_welcome_banner mais tarde, ou seja, depois que essa migração ocorreu? Terei que ajustar cada tema de acordo?

4 curtidas

Sim, você não pode mais alterar essas configurações do site diretamente, elas só aparecerão na página de Edição de cada tema individual.

2 curtidas

A configuração Localização do banner de boas-vindas também deve ser incluída?

3 curtidas

As configurações de site temáticas também podem incluir configurações de site para ativos como imagens de logotipo onebox?

3 curtidas

Uma atualização rápida aqui – as configurações de site personalizáveis por tema agora aparecerão ao pesquisar por “Todas as configurações” para torná-las um pouco mais fáceis de descobrir:

4 curtidas