Saltar al contenido principal

CMS Pages & Blog

CampoValor
Handleradmin/handlers/pages.go
Ruta base/admin/pages
Modelocontent_pages, blog_posts
EstadoImplementado

Descripción

El módulo CMS permite gestionar páginas de contenido estático y publicaciones de blog dentro del panel de administración. Soporta dos pestañas: Páginas y Blog, con CRUD completo, borradores, y programación de publicación.


Endpoints

Páginas

MétodoRutaAcción
GET/admin/pagesListar páginas (tab=pages)
GET/admin/pages/newFormulario de nueva página
POST/admin/pagesCrear página
GET/admin/pages/:idEditar página
PUT/admin/pages/:idActualizar página
DELETE/admin/pages/:idEliminar página (soft delete)
POST/admin/pages/:id/publishPublicar borrador
POST/admin/pages/:id/unpublishDespublicar

Blog

MétodoRutaAcción
GET/admin/pages?tab=blogListar posts
GET/admin/pages/blog/newFormulario de nuevo post
POST/admin/pages/blogCrear post
GET/admin/pages/blog/:idEditar post
PUT/admin/pages/blog/:idActualizar post
DELETE/admin/pages/blog/:idEliminar post
POST/admin/pages/blog/:id/publishPublicar post
POST/admin/pages/blog/:id/scheduleProgramar publicación

Campos

ContentPage

CampoTipoDescripción
idUUIDIdentificador único
titlestringTítulo de la página
slugstringURL slug (auto-generado del título)
body_htmltextContenido HTML
statusenumdraft, published
authorstringEmail del autor
menu_orderintOrden en menús
meta_titlestringSEO title
meta_descriptionstringSEO description
created_attimestampFecha de creación
updated_attimestampÚltima actualización
deleted_attimestampSoft delete

BlogPost

CampoTipoDescripción
idUUIDIdentificador único
titlestringTítulo del post
slugstringURL slug
body_htmltextContenido HTML
excerptstringExtracto para listados
cover_image_urlstringImagen de portada
tagsstring[]Etiquetas del post
statusenumdraft, published, scheduled
authorstringEmail del autor
published_attimestampFecha de publicación
created_attimestampFecha de creación
updated_attimestampÚltima actualización

Notas

  • Las páginas se ordenan por menu_order ASC, updated_at DESC
  • Los slugs se auto-generan del título si no se proporcionan
  • El soft delete usa deleted_at para evitar perder contenido
  • Los tags del blog se parsean de string separado por comas
  • La programación de posts usa published_at para publicación futura