Introducción
🎯 ¿Qué hace este módulo?
El módulo GeneralTypes te permite recuperar tipos de entidad a nivel del sistema - tipos de página, tipos de formulario, tipos de bloque de producto, 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 Bloque 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:
Your blog app fetches all page types:
- "homepage" → Renders featured posts slider
- "blog_post" → Renders article layout with comments
- "about_page" → Renders team member cards
- "contact_page" → Renders contact form
✨ 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:
| Entidad | Ejemplos de Tipos | Propósito |
|---|---|---|
| Páginas | homepage, blog_post, product_page, landing_page | Definir diseños y funcionalidades de páginas |
| Formularios | contact_form, survey, registration, feedback | Categorizar diferentes propósitos de formularios |
| Bloques de Producto | hero_section, gallery, text_block, video_embed | Bloques de construcción para páginas de productos |
| Productos | physical_product, digital_product, service, subscription | Clasificar inventario de productos |
Estructura de la Entidad de Tipo
Cada tipo devuelto por GeneralTypes.getAllTypes() tiene esta estructura:
interface GeneralTypeEntity {
id: number; // Unique numeric ID (e.g., 1, 2, 3)
type: string; // Type name (e.g., "blog_post", "contact_form")
}
Cuándo Usar GeneralTypes
| Caso de Uso | ¿Por qué GeneralTypes? |
|---|---|
| Construir interfaz de administración de CMS | Población de menús desplegables con tipos disponibles |
| Crear filtros de tipo | Permitir a los usuarios filtrar contenido por tipo (entradas de blog vs. páginas de destino) |
| Validar creación de entidades | Comprobar si un tipo existe antes de crear una página/formulario |
| Enrutamiento dinámico | Enrutar diferentes tipos de página a diferentes componentes |
| Permisos basados en tipos | Permitir 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:
OneEntry Admin Panel → Settings → Content Types → Add Page Type → "blog_post"
Una vez creados, puedes obtenerlos.
Tipos vs. Marcadores vs. IDs
Distinción importante:
| Identificador | Qué Es | Ejemplo | Mejor Para |
|---|---|---|---|
| Tipo | Categoría/clasificación de entidad | "blog_post" | Filtrado y agrupamiento |
| Marcador | Identificador único legible por humanos | "my_about_page" | Obtener entidades específicas |
| ID | Identificador numérico de base de datos | 42 | Uso interno del sistema |
getAllTypes() devuelve TODOS los tipos en todas las entidades
El método devuelve una lista combinada de tipos de:
- Páginas
- Formularios
- Bloques de Producto
- 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 y minú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étodo | Descripción | Caso de Uso |
|---|---|---|
| getAllTypes() | Recupera todos los tipos generales en el sistema | Población de menús desplegables, validación de tipos |
Estructura de GeneralTypeEntity:
{
id: number; // Unique numeric ID
type: string; // Type name (e.g., "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. Log in to OneEntry Admin Panel
2. Go to Settings → Content Types
3. Click "Add Page Type" (or Form Type, Product Type, etc.)
4. Enter type name: "blog_post"
5. Save
Now fetch it via SDK:
const types = await GeneralTypes.getAllTypes();
// Returns: [{ id: 1, type: "blog_post" }, ...]
¿Cómo filtro tipos por entidad (páginas, formularios, productos)?
El método getAllTypes() devuelve todos los tipos en 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:
| Campo | Uso Para | Ejemplo |
|---|---|---|
id | Referencias internas del sistema | Relaciones de base de datos |
type | Tu lógica de código y comparaciones | if (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 el almacenamiento 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 de manera dinámica:
// ❌ Don't hardcode types
const pageTypes = ['homepage', 'blog_post', 'product_page'];
// ✅ Fetch types dynamically
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 de manera dinámica - 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ágina, formularios, bloques de producto, y más, proporcionando flexibilidad para diferentes necesidades de gestión de contenido.
const { GeneralTypes } = defineOneEntry( "your-project-url", { "token": "your-app-token" });