Saltar al contenido principal

Introducción

🎯 ¿Qué hace este módulo?

El módulo GeneralTypes te permite recuperar tipos de entidades a nivel de sistema - tipos de página, tipos de formulario, tipos de bloques de productos, y más - que definen la estructura y categorías de tu contenido en OneEntry.

Piénsalo como tu sistema de clasificación de contenido - OneEntry utiliza tipos para organizar diferentes tipos de páginas (página de inicio, entrada de blog, página de producto), formularios (contacto, encuesta), bloques (hero, galería) y productos (físicos, digitales), y este módulo te permite obtener todos los tipos disponibles para construir interfaces dinámicas.


📖 Explicación Simple

En OneEntry, cada entidad tiene un tipo que determina su propósito y estructura:

  • Tipos de Página: homepage, blog_post, product_page, landing_page
  • Tipos de Formulario: contact_form, survey, registration, feedback
  • Tipos de Bloques de Producto: hero_section, image_gallery, text_block, video_embed
  • Tipos de Producto: physical_product, digital_product, service, subscription

El módulo GeneralTypes proporciona la lista completa de todos los tipos configurados en tu proyecto de OneEntry, para que puedas:

Construir menús desplegables dinámicos - Permitir a los admins elegir el tipo de página al crear contenido
Filtrar contenido - Mostrar solo páginas "blog_post" o formularios "contact_form"
Validar datos - Comprobar si un tipo existe antes de crear una entidad
Crear lógica basada en tipos - Mostrar diferentes interfaces de usuario según el tipo de página

Ejemplo del mundo real:

Tu aplicación de blog obtiene todos los tipos de página:
- "homepage" → Renderiza el slider de publicaciones destacadas
- "blog_post" → Renderiza el diseño del artículo con comentarios
- "about_page" → Renderiza las tarjetas de miembros del equipo
- "contact_page" → Renderiza el formulario de contacto

✨ Conceptos Clave

Jerarquía del Sistema de Tipos

OneEntry organiza el contenido utilizando un sistema de tipos donde cada entidad pertenece a una categoría:

EntidadEjemplos de TiposPropósito
Páginashomepage, blog_post, product_page, landing_pageDefinir diseños y funcionalidades de páginas
Formularioscontact_form, survey, registration, feedbackCategorizar diferentes propósitos de formularios
Bloques de Productohero_section, gallery, text_block, video_embedBloques de construcción para páginas de productos
Productosphysical_product, digital_product, service, subscriptionClasificar inventario de productos

Estructura de la Entidad de Tipo

Cada tipo devuelto por GeneralTypes.getAllTypes() tiene esta estructura:

interface GeneralTypeEntity {
id: number; // ID numérico único (por ejemplo, 1, 2, 3)
type: string; // Nombre del tipo (por ejemplo, "blog_post", "contact_form")
}

Cuándo Usar GeneralTypes

Caso de Uso¿Por qué GeneralTypes?
Construcción de interfaz de admin de CMSPoblación de menús desplegables con tipos disponibles
Creación de filtros por tipoPermitir a los usuarios filtrar contenido por tipo (entradas de blog vs. páginas de destino)
Validación de creación de entidadesComprobar si un tipo existe antes de crear una página/formulario
Enrutamiento dinámicoEnrutar diferentes tipos de página a diferentes componentes
Permisos basados en tiposPermitir que diferentes roles accedan a diferentes tipos de contenido

📋 Lo Que Necesitas Saber

Los tipos se configuran en el Panel de Administración de OneEntry

No creas tipos a través del SDK - los tipos se definen en tu panel de administración de OneEntry cuando configuras tu proyecto. El módulo GeneralTypes solo recupera la lista de tipos existentes.

Cómo se crean los tipos:

Panel de Administración de OneEntry → Configuración → Tipos de Contenido → Agregar Tipo de Página → "blog_post"

Una vez creados, puedes obtenerlos.

Tipos vs. Marcadores vs. IDs

Distinción importante:

IdentificadorQué EsEjemploMejor Para
TipoCategoría/clasificación de entidad"blog_post"Filtrado y agrupamiento
MarcadorIdentificador único legible por humanos"my_about_page"Obtener entidades específicas
IDIdentificador numérico de base de datos42Uso interno del sistema

getAllTypes() devuelve TODOS los tipos de todas las entidades

El método devuelve una lista combinada de tipos de:

  • Páginas
  • Formularios
  • Bloques de Productos
  • Productos
  • Cualquier otra entidad en tu proyecto de OneEntry

No hay filtrado incorporado por categoría de entidad, así que necesitarás filtrar manualmente:

Los tipos son sensibles a mayúsculas y minúsculas

Siempre usa coincidencia exacta de mayúsculas al trabajar con tipos.

Usa tipos para renderizado de contenido dinámico

Los tipos permiten contenido polimórfico - lógica de renderizado diferente según el tipo:


📊 Tabla de Referencia Rápida

MétodoDescripciónCaso de Uso
getAllTypes()Recupera todos los tipos generales en el sistemaPoblación de menús desplegables, validación de tipos

Estructura de GeneralTypeEntity:

{
id: number; // ID numérico único
type: string; // Nombre del tipo (por ejemplo, "blog_post")
}

❓ Preguntas Frecuentes (FAQ)

¿Cómo creo nuevos tipos?

No puedes crear tipos a través del SDK. Los tipos se crean en el Panel de Administración de OneEntry:

1. Inicia sesión en el Panel de Administración de OneEntry
2. Ve a Configuración → Tipos de Contenido
3. Haz clic en "Agregar Tipo de Página" (o Tipo de Formulario, Tipo de Producto, etc.)
4. Ingresa el nombre del tipo: "blog_post"
5. Guarda

Ahora obténlo a través del SDK:
const types = await GeneralTypes.getAllTypes();
// Devuelve: [{ id: 1, type: "blog_post" }, ...]

¿Cómo filtro tipos por entidad (páginas, formularios, productos)?

El método getAllTypes() devuelve todos los tipos de todas las entidades. Necesitas filtrar manualmente.


¿Puedo actualizar o eliminar tipos a través del SDK?

No. El módulo GeneralTypes es solo de lectura. Toda la gestión de tipos ocurre en el Panel de Administración de OneEntry.


¿Cuál es la diferencia entre el ID de tipo y el nombre de tipo?

Cuándo usar cada uno:

CampoUso ParaEjemplo
idReferencias internas del sistemaRelaciones de base de datos
typeTu lógica de código y comparacionesif (page.type === 'blog_post')

Mejor práctica: Siempre usa la cadena type en tu código, no el número id (los IDs pueden cambiar entre entornos).


¿Puedo almacenar en caché la lista de tipos?

¡Sí! Los tipos rara vez cambian, por lo que se recomienda almacenar en caché.


¿Cómo manejo la falta de tipos de manera elegante?

Siempre valida que un tipo exista antes de usarlo.


¿Puedo usar tipos para autorización/permisos?

¡Sí! Puedes implementar control de acceso basado en tipos.


💡 Notas Importantes

⚠️ Los tipos son Específicos del Proyecto

Los tipos están configurados en tu panel de administración de OneEntry y varían entre proyectos. No hay tipos "predeterminados" universales - siempre obtén la lista dinámicamente:

// ❌ No codifiques tipos
const pageTypes = ['homepage', 'blog_post', 'product_page'];

// ✅ Obtén tipos dinámicamente
const allTypes = await GeneralTypes.getAllTypes();
const pageTypes = allTypes.filter(t => t.type.endsWith('_page'));

🔒 Módulo de Solo Lectura

El módulo GeneralTypes solo lee tipos. Toda la creación, modificación y eliminación de tipos ocurre en el Panel de Administración de OneEntry.


🎓 Mejores Prácticas

  • Obtén tipos dinámicamente - No codifiques listas de tipos.
  • Almacena en caché los tipos - Rara vez cambian, almacena en caché para mejorar el rendimiento.
  • Usa cadenas de tipo, no IDs - Los nombres de tipo son estables entre entornos.
  • Valida que los tipos existan - Comprueba si un tipo es válido antes de usarlo.
  • Usa convenciones de nomenclatura - Nombres consistentes facilitan el filtrado.
  • Implementa renderizado de respaldo - Maneja tipos desconocidos de manera elegante.
  • Documenta tus tipos - Mantén una lista de tipos y sus propósitos.
  • Usa TypeScript para seguridad de tipos - Aprovecha la interfaz GeneralTypeEntity.

Definición del módulo GeneralTypes

El módulo GeneralTypes en la Plataforma OneEntry está diseñado para gestionar y recuperar tipos generales utilizados dentro del sistema. Al usar la función defineOneEntry, puedes crear un objeto GeneralTypes para interactuar con estos tipos. El método principal disponible es getAllTypes, que recupera todos los objetos del tipo GeneralTypeEntity de la API. Este método devuelve una Promesa que se resuelve en un array de objetos GeneralTypeEntity, cada uno conteniendo un id y un type. Los tipos cubren varios propósitos, como diseños de páginas, formularios, bloques de productos, y más, proporcionando flexibilidad para diferentes necesidades de gestión de contenido.


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