Saltar al contenido principal

Introducción

Administra las páginas del sitio web y las pantallas de la aplicación móvil con contenido dinámico.

Más información sobre la interfaz de usuario del módulo https://doc.oneentry.cloud/docs/category/pages


🎯 ¿Qué hace este módulo?

El módulo Pages te permite recuperar y gestionar páginas (para sitios web) o pantallas (para aplicaciones móviles) con todo su contenido: título, contenido HTML/plano, visibilidad y atributos personalizados. Creas páginas en el panel de administración de OneEntry y las recuperas dinámicamente en tu aplicación, por lo que cambiar el contenido en el administrador se hace efectivo sin necesidad de redeplegar.

🚀 Inicio Rápido

Inicializa el módulo desde defineOneEntry:


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

Recupera una sola página por su URL (marcador) y lee sus 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);

La mayoría de los métodos de lectura siguen la misma estructura: un identificador (url o id) más un langCode. Consulta la Tabla de Referencia Rápida a continuación para el conjunto completo.

✨ Conceptos Clave

¿Qué es una Página?

Una página es una entidad de contenido que representa:

  • Web: Una página en tu sitio web (por ejemplo, /about, /contact)
  • Móvil: Una pantalla en tu aplicación (por ejemplo, Pantalla de Perfil, Pantalla de Configuración)

Cada página contiene:

  • Contenido - título y contenido HTML/plano a través de localizeInfos
  • URL - pageUrl, el marcador de la página utilizado para el enrutamiento y las búsquedas
  • Visibilidad - la bandera isVisible
  • Atributos personalizados - cualquier campo adicional que definas en attributeValues (los metadatos SEO se modelan como atributos personalizados, no como un campo incorporado)
  • Localización - contenido multilingüe

Tipos de Página

OneEntry admite diferentes tipos de página (type), siendo los más comunes:

TipoValor de typeEjemplo de Uso
Página Comúncommon_pageAcerca de, Contacto, Términos
Página de Catálogocatalog_pageCategorías de catálogo
Página Externaexternal_pageEnlaces a URLs externas
Página de Errorerror_pagePágina 404 / No Encontrado

La lista completa de tipos está disponible a través del módulo GeneralTypes.

Jerarquía de Páginas

Las páginas están organizadas en un árbol a través de parentId (las páginas de nivel superior tienen parentId: null):

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

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

Puedes recuperar páginas raíz con getRootPages() y descender con getChildPagesByParentUrl().

📋 Lo Que Necesitas Saber

Dos Maneras de Identificar Páginas

MétodoCuándo UsarEjemplo
Por URLEl usuario visita una página específicagetPageByUrl("about")
Por IDReferencias internasgetPageById(123)

Mejor práctica: el pageUrl es un marcador estable - no es una ruta de Next.js. Pasa el marcador de OneEntry (por ejemplo, "about"), no /en/about.

Estructura de la Página

Cada página tiene estos campos clave:

{
"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
}

Localización

Las páginas admiten múltiples idiomas: solicita un langCode diferente para obtener la misma página en otro idioma.

Atributos Personalizados

Agrega cualquier campo a las páginas utilizando AttributesSets: autor de la publicación del blog/fecha/etiquetas, imágenes de héroe de la página de destino, metadatos SEO, etc. Léelos desde page.attributeValues. Aprende más: Módulo AttributesSets.

Visibilidad

Utiliza la bandera isVisible para controlar qué páginas se muestran a los usuarios: filtra por isVisible: true en producción.


📊 Tabla de Referencia Rápida - Métodos Comunes

MétodoQué HaceCuándo Usar
getPages()Obtener todas las páginasConstruir un sitemap, listar todas las páginas
getRootPages()Obtener todas las páginas de nivel superiorConstruir navegación de nivel superior
getChildPagesByParentUrl()Obtener páginas secundarias por URL padreRecorrer el subárbol de una sección
getBlocksByPageUrl()Obtener objetos PositionBlock para una página por URLRenderizar bloques de contenido de la página
getConfigPageByUrl()Obtener configuraciones para una página por URLLeer configuraciones de visualización por página
getPageById()Obtener una sola página por IDReferencias internas
getPageByUrl()Obtener una sola página por URLRenderizar una página en una ruta
searchPage()Búsqueda rápida de páginasBuscar páginas por título

❓ Preguntas Comunes (FAQ)

¿Cuál es la diferencia entre URL e ID?

  • pageUrl - el marcador de la página utilizado para el enrutamiento (por ejemplo, "about"). Visible para el usuario y estable en todos los entornos.
  • id - el identificador numérico. Utilizado para referencias internas.

¿Cómo construyo la navegación a partir de páginas?

Utiliza getRootPages() para entradas de nivel superior y getChildPagesByParentUrl() para descender por el árbol, o utiliza el módulo Menus dedicado para estructuras de navegación gestionadas.


¿Cómo añado metadatos SEO a una página?

SEO no es un campo incorporado: modela el título/meta descripción/etc. como atributos personalizados en un AttributesSet, luego léelos desde page.attributeValues.


🎓 Mejores Prácticas

  • Utiliza pageUrl (el marcador) para el enrutamiento: nunca codifiques una ruta de marco como la URL.
  • Filtra por isVisible: true para producción.
  • Almacena en caché las páginas para reducir las llamadas a la API; maneja los 404 (página no encontrada) de manera adecuada.
  • Lee datos personalizados desde attributeValues en lugar de asumir campos incorporados.

🔗 Documentación Relacionada