Templates
Introdução
O Template define o layout geral de uma Página — é o valor do campo template da página, e corresponde a uma pasta em website/src/pages/Template/.
O mecanismo de Tipos de Componente (pastas dinâmicas + info.json) foi inspirado neste mecanismo de Templates, que já funcionava assim primeiro. A estrutura é praticamente a mesma, só que aplicada a páginas inteiras em vez de blocos de conteúdo.
Como funciona
website/src/pages/Template/
├── index.jsx # roteador: escolhe o template a renderizar
└── Default/
├── index.jsx # o template em si
├── index.less
└── info.json # nome/descrição do template, por idioma
Cada pasta dentro de Template/ é um template selecionável no campo Template do formulário de edição da página. O nome da pasta (Default) é o valor gravado no campo template da página.
info.jsonAo contrário dos Tipos de Componente, o select de Template no formulário da página usa o nome da pasta como texto mostrado (não o label traduzido do info.json) — o serviço até devolve o info.json, mas o formulário não o usa para a etiqueta. Ou seja, o info.json do Template hoje não tem efeito visível nenhum; é preparação para uma tradução que ainda não foi ligada à interface.
Também há um serviço no servidor (server/services/page/template/list/) que varre as pastas em tempo real e devolve a lista de templates disponíveis — pelo mesmo motivo: não é preciso reiniciar o servidor para adicionar um template novo, só criar a pasta.
Uma diferença em relação aos Tipos de Componente: os Templates não têm config.json — não há capacidades configuráveis por template hoje, só o index.jsx e o info.json.
O template Padrão
O template Padrão (Default) é o que a maioria das páginas usa: envolve o conteúdo da página com o cabeçalho e rodapé do site (BaseHeader / BaseFooter) à volta do Builder — o componente que efetivamente percorre e renderiza os componentes da página (Banner, Conteúdo, Listagem, Slider, Funcionalidade), na ordem definida pelo campo Ordem de cada um.
Se o campo template de uma página não corresponder a nenhuma pasta existente (ex.: nome escrito incorretamente, ou pasta apagada), o CLUAR não falha nem usa o Padrão como substituto — em vez disso, renderiza só o Builder "nu", sem o cabeçalho nem o rodapé do site. É um comportamento diferente do que acontece nos Tipos de Componente, onde um tipo não reconhecido cai para o tipo Padrão.
Como criar um novo template
- Cria uma nova pasta dentro de
website/src/pages/Template/(ex.:Template/Landing/). - Dentro dela, cria o
index.jsx(o layout React do template), oindex.less(estilos) e oinfo.json(label/descrição por idioma — ainda sem efeito visível na interface, ver nota acima, mas mantém-se pelo padrão). - No
index.jsxdo roteador (Template/index.jsx), importa o novo template e adiciona-o à condição que escolhe o template pelo campopage.template. - O novo template passa a aparecer automaticamente no select de Template do formulário de edição da página, com o nome da pasta como valor gravado.
Próximo passo
Explora as Permissões.