Pular para o conteúdo principal

Introdução

Gerencie páginas do site e telas de aplicativos móveis com conteúdo dinâmico.

Mais informações sobre a interface do usuário do módulo https://doc.oneentry.cloud/docs/category/pages


🎯 O que este módulo faz?

O módulo Pages permite que você recupere e gerencie páginas (para websites) ou telas (para aplicativos móveis) com todo o seu conteúdo - título, conteúdo HTML/texto simples, visibilidade e atributos personalizados. Você cria páginas no painel de administração do OneEntry e as busca dinamicamente em seu aplicativo, de modo que a alteração de conteúdo na administração entra em vigor sem necessidade de reimplantação.

🚀 Início Rápido

Inicialize o módulo a partir de defineOneEntry:


const { Pages } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);

Recupere uma única página pela sua URL (marcador) e leia seus campos:

// Fetch the "about" page in English.
const page = await Pages.getPageByUrl("about", "en_US");

console.log(page.id, page.localizeInfos.title);
console.log("Visible:", page.isVisible);

// Custom fields you defined live in attributeValues.
console.log(page.attributeValues);

A maioria dos métodos de leitura segue a mesma estrutura: um identificador (url ou id) mais um langCode. Veja a Tabela de Referência Rápida abaixo para o conjunto completo.

✨ Conceitos Chave

O que é uma Página?

Uma página é uma entidade de conteúdo que representa:

  • Web: Uma página no seu site (por exemplo, /sobre, /contato)
  • Móvel: Uma tela no seu aplicativo (por exemplo, Tela de Perfil, Tela de Configurações)

Cada página contém:

  • Conteúdo - título e conteúdo HTML/texto simples via localizeInfos
  • URL - pageUrl, o marcador da página usado para roteamento e buscas
  • Visibilidade - a flag isVisible
  • Atributos personalizados - quaisquer campos adicionais que você definir em attributeValues (meta SEO é modelado como atributos personalizados, não como um campo embutido)
  • Localização - conteúdo multilíngue

Tipos de Página

O OneEntry suporta diferentes tipos de página (type), sendo os mais comuns:

TipoValor de typeUso Exemplo
Página Comumcommon_pageSobre, Contato, Termos
Página de Catálogocatalog_pageCategorias de catálogo
Página Externaexternal_pageLinks para URLs externas
Página de Erroerror_pagePágina 404 / Não Encontrada

A lista completa de tipos está disponível através do módulo GeneralTypes.

Hierarquia de Páginas

As páginas são organizadas em uma árvore através de parentId (páginas de nível superior têm parentId: null):

📁 Company
├─ About Us
├─ Team
└─ Careers

📁 Products
├─ Product Category 1
│ ├─ Product A
│ └─ Product B
└─ Product Category 2

Você pode buscar páginas raiz com getRootPages() e descer com getChildPagesByParentUrl().

📋 O que você precisa saber

Duas maneiras de identificar páginas

MétodoQuando usarExemplo
Por URLO usuário visita uma página específicagetPageByUrl("sobre")
Por IDReferências internasgetPageById(123)

Melhor prática: o pageUrl é um marcador estável - não é um caminho de rota do Next.js. Passe o marcador do OneEntry (por exemplo, "sobre"), não /pt/sobre.

Estrutura da Página

Cada página possui estes campos principais:

{
"id": 9,
"parentId": 8,
"pageUrl": "blog1",
"depth": 1,
"localizeInfos": {
"title": "Blog 1",
"menuTitle": "Blog 1",
"htmlContent": "",
"plainContent": ""
},
"isVisible": true,
"blocks": [],
"type": "common_page",
"templateIdentifier": null,
"attributeSetIdentifier": null,
"attributeValues": {},
"isSync": false
}

Localização

As páginas suportam múltiplas línguas - solicite um langCode diferente para obter a mesma página em outro idioma.

Atributos Personalizados

Adicione quaisquer campos às páginas usando AttributesSets - autor/data/tags de postagens de blog, imagens de destaque de landing pages, meta SEO, e assim por diante. Leia-os de page.attributeValues. Saiba mais: Módulo AttributesSets.

Visibilidade

Use a flag isVisible para controlar quais páginas são mostradas aos usuários - filtre por isVisible: true em produção.


📊 Tabela de Referência Rápida - Métodos Comuns

MétodoO que fazQuando usar
getPages()Obtém todas as páginasConstruir sitemap, listar todas as páginas
getRootPages()Obtém todas as páginas de nível superior (raiz)Construir navegação de nível superior
getChildPagesByParentUrl()Obtém páginas filhas por URL paiNavegar pela subárvore de uma seção
getBlocksByPageUrl()Obtém objetos PositionBlock para uma página por URLRenderizar blocos de conteúdo da página
getConfigPageByUrl()Obtém configurações para uma página por URLLer configurações de exibição por página
getPageById()Obtém uma única página por IDReferências internas
getPageByUrl()Obtém uma única página por URLRenderizar uma página em uma rota
searchPage()Pesquisa rápida por páginasPesquisar páginas por título

❓ Perguntas Comuns (FAQ)

Qual é a diferença entre URL e ID?

  • pageUrl - o marcador da página usado para roteamento (por exemplo, "sobre"). Voltado para o usuário e estável entre ambientes.
  • id - o identificador numérico. Usado para referências internas.

Como faço para construir a navegação a partir das páginas?

Use getRootPages() para entradas de nível superior e getChildPagesByParentUrl() para descer na árvore, ou use o módulo Menus dedicado para estruturas de navegação gerenciadas.


Como faço para adicionar metadados de SEO a uma página?

SEO não é um campo embutido - modele o título/meta descrição/etc. como atributos personalizados em um AttributesSet, e então leia-os de page.attributeValues.


🎓 Melhores Práticas

  • Use pageUrl (o marcador) para roteamento - nunca codifique um caminho de rota de framework como a URL.
  • Filtre por isVisible: true para produção.
  • Armazene em cache as páginas para reduzir chamadas à API; trate 404s (página não encontrada) de forma elegante.
  • Leia dados personalizados de attributeValues em vez de assumir campos embutidos.

🔗 Documentação Relacionada