Ir al contenido

Referencia de la API XOOPS

Bienvenido a la documentación completa de Referencia de la API XOOPS. Esta sección proporciona documentación detallada para todas las clases principales, métodos y sistemas que conforman el Sistema de Gestión de Contenidos XOOPS.

La API XOOPS está organizada en varios subsistemas principales, cada uno responsable de un aspecto específico de la funcionalidad de CMS. Comprender estas APIs es esencial para desarrollar módulos, temas y extensiones para XOOPS.

Las clases fundamentales sobre las que se construyen todos los demás componentes de XOOPS.

DocumentaciónDescripción
XoopsObjectClase base para todos los objetos de datos en XOOPS
XoopsObjectHandlerPatrón de controlador para operaciones CRUD

Utilidades de abstracción de base de datos y construcción de consultas.

DocumentaciónDescripción
XoopsDatabaseCapa de abstracción de base de datos
Criteria SystemCriterios de consulta y condiciones
QueryBuilderConstrucción de consultas fluidas modernas

Generación y validación de formularios HTML.

DocumentaciónDescripción
XoopsFormContenedor y representación de formularios
Form ElementsTodos los tipos de elementos de formulario disponibles

Componentes del sistema principal y servicios.

DocumentaciónDescripción
Kernel ClassesSistema kernel y componentes principales

Gestión de módulos y ciclo de vida.

DocumentaciónDescripción
Module SystemCarga, instalación y gestión de módulos

Integración de plantillas Smarty.

DocumentaciónDescripción
Template SystemIntegración de Smarty y gestión de plantillas

Gestión de usuarios y autenticación.

DocumentaciónDescripción
User SystemCuentas de usuario, grupos y permisos
flowchart TB
subgraph "Foundation Layer"
XO[XoopsObject<br/>Base Class]
XD[XoopsDatabase<br/>DB Abstraction]
XF[XoopsForm<br/>Form Generation]
end
subgraph "Handler Layer"
XOH[XoopsObjectHandler<br/>CRUD Operations]
CR[Criteria<br/>Query Building]
XFE[XoopsFormElement<br/>Input Types]
end
subgraph "Module Layer"
XM[XoopsModule<br/>Module Management]
end
subgraph "Presentation Layer"
XT[XoopsTpl<br/>Template Engine]
end
XO --> XOH
XD --> CR
XF --> XFE
XOH --> XM
CR --> XM
XFE --> XM
XM --> XT
classDiagram
class XoopsObject {
<<Base>>
+getVar()
+setVar()
+toArray()
}
XoopsObject <|-- XoopsUser
XoopsObject <|-- XoopsGroup
XoopsObject <|-- XoopsModule
XoopsObject <|-- XoopsBlock
XoopsObject <|-- XoopsComment
XoopsObject <|-- XoopsNotification
classDiagram
class XoopsObjectHandler {
<<Base>>
+create()
+get()
+insert()
+delete()
}
class XoopsPersistableObjectHandler {
+getObjects()
+getCount()
+deleteAll()
}
XoopsObjectHandler <|-- XoopsPersistableObjectHandler
XoopsPersistableObjectHandler <|-- XoopsUserHandler
XoopsPersistableObjectHandler <|-- XoopsGroupHandler
XoopsPersistableObjectHandler <|-- XoopsModuleHandler
XoopsPersistableObjectHandler <|-- XoopsBlockHandler
XoopsObjectHandler <|-- CustomModuleHandlers
classDiagram
class XoopsForm {
<<Base>>
+addElement()
+render()
+display()
}
XoopsForm <|-- XoopsThemeForm
XoopsForm <|-- XoopsSimpleForm
class XoopsFormElement {
<<Base>>
+getName()
+render()
+getValue()
}
XoopsFormElement <|-- XoopsFormText
XoopsFormElement <|-- XoopsFormTextArea
XoopsFormElement <|-- XoopsFormSelect
XoopsFormElement <|-- XoopsFormCheckBox
XoopsFormElement <|-- XoopsFormRadio
XoopsFormElement <|-- XoopsFormButton
XoopsFormElement <|-- XoopsFormFile
XoopsFormElement <|-- XoopsFormHidden
XoopsFormElement <|-- XoopsFormLabel
XoopsFormElement <|-- XoopsFormPassword
XoopsFormElement <|-- XoopsFormEditor

La API XOOPS implementa varios patrones de diseño bien conocidos:

Se utiliza para servicios globales como conexiones de base de datos e instancias de contenedor.

$db = XoopsDatabase::getInstance();
$container = XoopsContainer::getInstance();

Los controladores de objetos crean objetos de dominio consistentemente.

$handler = xoops_getHandler('user');
$user = $handler->create();

Los formularios contienen múltiples elementos de formulario; los criterios pueden contener criterios anidados.

$criteria = new CriteriaCompo();
$criteria->add(new Criteria('status', 1));
$criteria->add(new CriteriaCompo(...)); // Nested

El sistema de eventos permite un acoplamiento débil entre módulos.

$dispatcher->addListener('module.news.article_published', $callback);
// Get the handler
$handler = xoops_getHandler('user');
// Create a new object
$user = $handler->create();
$user->setVar('uname', 'newuser');
$user->setVar('email', 'user@example.com');
// Save to database
$handler->insert($user);
// Build criteria
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('level', 0, '>'));
$criteria->setSort('uname');
$criteria->setOrder('ASC');
$criteria->setLimit(10);
// Get objects
$handler = xoops_getHandler('user');
$users = $handler->getObjects($criteria);
$form = new XoopsThemeForm('User Profile', 'userform', 'save.php', 'post', true);
$form->addElement(new XoopsFormText('Username', 'uname', 50, 255, $user->getVar('uname')));
$form->addElement(new XoopsFormTextArea('Bio', 'bio', $user->getVar('bio')));
$form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
echo $form->render();
TipoConvenciónEjemplo
ClassesPascalCaseXoopsUser, CriteriaCompo
MethodscamelCasegetVar(), setVar()
PropertiescamelCase (protected)$_vars, $_handler
ConstantsUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Database Tablessnake_caseusers, groups_users_link

XOOPS define tipos de datos estándar para variables de objeto:

ConstanteTipoDescripción
XOBJ_DTYPE_TXTBOXStringEntrada de texto (desinfectada)
XOBJ_DTYPE_TXTAREAStringContenido de textarea
XOBJ_DTYPE_INTIntegerValores numéricos
XOBJ_DTYPE_URLStringValidación de URL
XOBJ_DTYPE_EMAILStringValidación de correo electrónico
XOBJ_DTYPE_ARRAYArrayMatrices serializadas
XOBJ_DTYPE_OTHERMixedManejo personalizado
XOBJ_DTYPE_SOURCEStringCódigo fuente (desinfección mínima)
XOBJ_DTYPE_STIMEIntegerMarca de tiempo corta
XOBJ_DTYPE_MTIMEIntegerMarca de tiempo media
XOBJ_DTYPE_LTIMEIntegerMarca de tiempo larga

La API admite múltiples métodos de autenticación:

X-API-Key: your-api-key
Authorization: Bearer your-oauth-token

Utiliza la sesión XOOPS existente cuando se inicia sesión.

Cuando la API REST está habilitada:

Punto FinalMétodoDescripción
/api.php/rest/usersGETListar usuarios
/api.php/rest/users/{id}GETObtener usuario por ID
/api.php/rest/usersPOSTCrear usuario
/api.php/rest/users/{id}PUTActualizar usuario
/api.php/rest/users/{id}DELETEEliminar usuario
/api.php/rest/modulesGETListar módulos
  • Guía de Desarrollo de Módulos
  • Guía de Desarrollo de Temas
  • Configuración del Sistema
  • Mejores Prácticas de Seguridad
VersiónCambios
2.5.11Lanzamiento estable actual
2.5.10Compatibilidad agregada con API GraphQL
2.5.9Sistema de Criterios mejorado
2.5.8Compatibilidad de carga automática PSR-4

Esta documentación es parte de la Base de Conocimientos XOOPS. Para las últimas actualizaciones, visite el repositorio XOOPS GitHub.