Pular para o conteúdo principal

Introdução

🎯 O que este módulo faz?

O módulo Templates permite que você mude a estrutura e a aparência do seu projeto sem alterar seu código-fonte. Os templates permitem que você gerencie componentes através da Plataforma OneEntry, mantendo opções de design e comportamento flexíveis.

Os templates funcionam permitindo que você descreva componentes no código do seu projeto e, em seguida, os marque com templates criados pela plataforma. Essa separação permite alternar entre diferentes implementações de templates para influenciar como as entidades funcionam.

Pense nisso como seu configurador de sistema de design - você cria templates no painel de administração do OneEntry (Configurações > Templates), marca seus componentes com esses templates, e este módulo busca essas configurações para que seu aplicativo possa renderizar conteúdo dinamicamente com um estilo consistente.


📖 Explicação Simples

Toda aplicação precisa de uma apresentação de conteúdo consistente:

  • 🖼️ Templates de Imagem - Tamanhos e cortes predefinidos (miniatura, herói, galeria)
  • 📄 Templates de Página - Configurações de layout de página (postagem de blog, página de destino)
  • 🧱 Templates de Bloco - Aparências de blocos de conteúdo (cartão, banner, seção)
  • 🛍️ Templates de Produto - Formatos de exibição de produtos (grade, lista, detalhe)
  • 🎨 Design Responsivo - Tamanhos diferentes para mobile, tablet, desktop
  • ♻️ Configs Reutilizáveis - Defina uma vez, use em toda parte

O problema com a lógica de exibição codificada:

Problemas:

  • 🔒 Inconsistente - Tamanhos diferentes em lugares diferentes
  • 🎨 Difícil de manter - Mudanças requerem edição de múltiplos arquivos
  • 📱 Não responsivo - Tamanhos fixos não se adaptam
  • ♻️ Sem reutilização - Código duplicado em toda parte

A solução dos Templates:

Benefícios:

  • 🔒 Consistente - Mesmo template usado em toda parte
  • 🎨 Fácil manutenção - Mudança no painel de administração, aplica-se em toda parte
  • 📱 Responsivo - Diferentes templates para diferentes telas
  • ♻️ Reutilizável - Defina uma vez, use em todo o aplicativo

✨ Conceitos Chave

O que é um Template?

Um Template é uma configuração de exibição que define como o conteúdo deve aparecer:

  • Tipo de Template - Template de imagem, página, bloco, produto
  • Dimensões - Largura, altura, proporção
  • Configurações de Corte - Como cortar imagens (centro, topo, fundo)
  • Formato - Formato da imagem (JPEG, PNG, WebP)
  • Qualidade - Qualidade de compressão
  • Marcador - Identificador único para referência de código

Estrutura do Template

Cada template tem esta estrutura:

{
id: 1, // Identificador único
title: "Miniatura do Produto", // Nome do template (não único)
identifier: "product_thumbnail", // Marcador do template (único)
generalTypeId: 1, // Referência do ID do tipo
version: 0, // Número da versão
attributeSetIdentifier: null, // Conjunto de atributos associado
localizeInfos: { // Informações localizadas
en_US: {
title: "Miniatura do Produto",
description: "Imagem pequena do produto"
}
},
attributeValues: {}, // Dados adicionais de atributos
isActive: true, // Status ativo
createdAt: "2024-01-15T10:00:00Z",
updatedAt: "2024-01-15T10:00:00Z"
}

Campos Chave:

  • identifier - Marcador único para referência do template (use isso, não o ID)
  • title - Nome do template exibido no painel de administração
  • generalTypeId - Categoria da entidade à qual o template se aplica
  • attributeSetIdentifier - Conjunto de atributos associado opcional

Tipos de Template

Os templates são organizados por tipo de entidade e suportam as seguintes categorias:

Tipo de TemplateCategoria da EntidadeExemplos de Casos de Uso
Blocos de ProdutoforCatalogProductsGrade de produtos, lista de produtos, produtos em destaque
Blocos RegularesforOneBlockCartões de conteúdo, banners, seções, widgets
Páginas de ErroforErrorPagesPágina 404, página 500, layouts de erro personalizados
Páginas RegularesforOnePagePostagem de blog, página de destino, página sobre
Páginas de ProdutoforOneProductDetalhe do produto, comparação de produtos
Páginas de CatálogoforCatalogPageListagem de categorias, resultados de busca
FormuláriosforFormFormulário de contato, formulário de registro, pesquisa
PedidosforOrderConfirmação de pedido, histórico de pedidos

Templates de Imagem Comuns

TemplateTamanhoCorteCaso de Uso
Miniatura150×150CentroImagens de pré-visualização pequenas
Imagem de Cartão300×200CentroCartões de produtos, cartões de blog
Imagem Hero1920×1080CentroBanners de largura total
Imagem de Galeria800×600CentroGalerias de imagens
Avatar100×100CentroImagens de perfil de usuário
Hero Mobile768×432CentroBanners otimizados para mobile

Fluxo de Trabalho de Configuração de Template

1. Crie templates no painel de administração
(Defina tamanhos, cortes, formatos)

2. Busque templates via SDK
(Templates.getTemplates())

3. Aplique configurações de template
(Use tamanhos na renderização de imagens)

4. Imagens otimizadas automaticamente
(CDN OneEntry serve o tamanho correto)

5. Exibição consistente em toda parte
(Mesmo template = mesma aparência)

Por que usar o módulo Templates?

BenefícioDescrição
Design ConsistenteMesmos templates usados em todo o aplicativo
Fácil ManutençãoMude o template na administração, atualiza em toda parte
Otimização de ImagemRedimensionamento e compressão automáticos
Design ResponsivoDiferentes templates para diferentes telas
Integração CDNEntrega otimizada de imagens
Configs ReutilizáveisDefina uma vez, use em toda parte

📋 O que você precisa saber

Templates são criados no painel de administração

Você não pode criar templates via SDK - eles são criados no painel de administração do OneEntry:

Painel de Administração do OneEntry → Configurações → Templates → Criar Template → Definir Nome/Marcador/Tipo → Salvar

Processo de Criação:

  • Forneça um Nome (identificador não único)
  • Forneça um Marcador (identificador único)
  • Selecione um Tipo (categoria da entidade à qual o template se aplica)
  • Clique em "Criar" para finalizar

Operações de Gerenciamento:

  • Configuração - Clique no ícone de engrenagem para editar nome, marcador ou tipo
  • Exclusão - Selecione o template e clique no ícone de excluir, depois confirme a remoção

O SDK é para buscar configurações de templates, não para criá-los.

Identificação de Template

Três maneiras de identificar templates:

MétodoQuando UsarExemplo
Por TipoReferência no código (melhor prática)product_thumbnail, hero_banner
Por MarcadorReferência no código (melhor prática)product_thumbnail, hero_banner
Listar TodosMostrar templates disponíveisgetTemplates()

Melhor prática: Sempre use marcadores no seu código (eles nunca mudam).

Integração de CDN de Template de Imagem

O OneEntry otimiza automaticamente as imagens com base nos templates.

Design Responsivo com Templates

Crie diferentes templates para diferentes tamanhos de tela.


Estrutura do Template:

interface ITemplateEntity {
id: number; // Identificador único
title: string; // Nome do template (não único)
identifier: string; // Marcador do template (único)
generalTypeId: number; // Referência do ID do tipo
version: number; // Número da versão
attributeSetIdentifier: string | null; // Conjunto de atributos associado
localizeInfos: { // Informações localizadas
[langCode: string]: {
title: string;
description?: string;
};
};
attributeValues: any; // Dados adicionais de atributos
isActive: boolean; // Status ativo
}

Tipos de Template Disponíveis:

  • forCatalogProducts - Blocos de produto
  • forOneBlock - Blocos regulares
  • forErrorPages - Páginas de erro
  • forOnePage - Páginas regulares
  • forOneProduct - Páginas de produto
  • forCatalogPage - Páginas de catálogo
  • forForm - Formulários
  • forOrder - Pedidos

💡 Notas Importantes

Templates são Criados no Painel de Administração

Lembre-se: O SDK é para buscar configurações de templates, não para criar templates.

Para criar/editar templates: Use o Painel de Administração do OneEntry.


Como os Templates Funcionam

Os templates permitem uma gestão flexível de componentes ao separar a estrutura do código:

  1. Descreva componentes no código do seu projeto
  2. Marque componentes com templates criados pela plataforma
  3. Alterne templates para mudar como as entidades funcionam
  4. Atualize a aparência sem modificar o código-fonte

Essa separação permite múltiplas variações de design e funcionalidade sem mudanças no código.


Otimização de Imagem

O CDN OneEntry otimiza automaticamente as imagens com base nas configurações do template:

  • Redimensionamento automático
  • Conversão de formato (JPEG, PNG, WebP)
  • Compressão
  • Corte
  • Cache

Você apenas referencia o marcador do template:

<img src={`${image.url}?template=thumbnail`} />

Templates Responsivos

Crie templates separados para diferentes dispositivos:

  • Templates para mobile (768px de largura ou menos)
  • Templates para tablet (1024px de largura)
  • Templates para desktop (1920px de largura)

Use com o elemento <picture> para imagens responsivas.


Cache de Template

Templates raramente mudam - implemente cache:

  • Frontend: localStorage, sessionStorage
  • Backend: Redis, cache de memória
  • TTL: 1 hora recomendada

📊 Tabela de Referência Rápida

MétodoDescriçãoCaso de Uso
getAllTemplates()Obter todos os templates agrupados por tiposListar todos os templates disponíveis
getTemplateByType()Obter templates por tipo de entidadeBuscar templates para tipo de entidade específico
getTemplateByMarker()Obter template por marcadorBuscar configuração de template específica

❓ Perguntas Comuns (FAQ)

Qual é a diferença entre Templates e TemplatePreviews?

Templates configuram a exibição geral do conteúdo (páginas, blocos, produtos), enquanto TemplatePreviews lidam especificamente com imagens de atributos de produtos (amostras de cores, pré-visualizações de materiais). Use Templates para conteúdo principal, TemplatePreviews para imagens de atributos.


Como aplico um template a uma URL de imagem?

Anexe ?template=marker à URL da imagem, onde marker é o identificador do template. O CDN OneEntry serve automaticamente a imagem otimizada com base na configuração do template (tamanho, corte, formato).


Posso criar diferentes templates para mobile e desktop?

Sim! Crie templates separados com tamanhos apropriados para cada dispositivo (por exemplo, hero_mobile, hero_desktop). Use técnicas de design responsivo ou elementos <picture> para carregar o template correto com base no tamanho da tela.


O que acontece se eu referenciar um template que não existe?

A imagem será carregada em seu tamanho original sem otimização de template. Sempre verifique se os marcadores de template existem e trate templates ausentes de forma adequada com tamanhos de fallback.


Como atualizo um template sem afetar a produção?

Templates são configurações, não código. Mudanças no painel de administração se aplicam imediatamente. Teste as mudanças de template em um ambiente de staging primeiro, depois atualize os templates de produção quando verificados.


Quais tipos de template devo usar para meu conteúdo?

Escolha com base no tipo de entidade: forOnePage para páginas padrão, forCatalogProducts para listagens de produtos, forOneBlock para blocos de conteúdo, forOneProduct para detalhes de produtos. Combine o tipo de template com sua categoria de conteúdo.


🎓 Melhores Práticas

  • Use marcadores, não IDs - Marcadores são estáveis entre ambientes
  • Cache templates - Reduza chamadas de API para dados que raramente mudam
  • Crie templates responsivos - Tamanhos diferentes para diferentes telas
  • Use formato WebP - Melhor compressão do que JPEG/PNG
  • Defina configurações de qualidade - Equilibre qualidade vs tamanho do arquivo
  • Use parâmetros de template CDN - ?template=marker para otimização
  • Crie marcadores semânticos - product_thumbnail, não img_1
  • Documente o uso de templates - Explique para que cada template serve

Mais informações sobre templates no painel de administração do OneEntry: https://doc.oneentry.cloudhttps://doc.oneentry.cloud/docs/templates/content_templates/


Definição do módulo Templates

O módulo Templates configura a exibição de conteúdo dentro do seu aplicativo.

Alguns templates afetam imagens armazenadas no OneEntry, enquanto outros definem a aparência de entidades como blocos, páginas e produtos.


const { Templates } = defineOneEntry(
"sua-url-do-projeto", {
"token": "seu-token-de-aplicativo"
}
);


🔗 Documentação Relacionada