Saltar al contenido principal

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:

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; // 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 CMSPoblación de menús desplegables con tipos disponibles
Crear filtros de tipoPermitir a los usuarios filtrar contenido por tipo (entradas de blog vs. páginas de destino)
Validar 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:

OneEntry Admin Panel → Settings → Content Types → Add Page Type → "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 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é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; // 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:

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 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"
}
);