Salta ai contenuti

Riferimento API XOOPS

Benvenuto nella documentazione completa del Riferimento API XOOPS. Questa sezione fornisce documentazione dettagliata per tutte le classi core, i metodi e i sistemi che compongono il Sistema di Gestione dei Contenuti XOOPS.

L’API XOOPS è organizzata in diversi sottosistemi principali, ciascuno responsabile di un aspetto specifico della funzionalità del CMS. Comprendere queste API è essenziale per sviluppare moduli, temi ed estensioni per XOOPS.

Le classi fondamentali su cui si costruiscono tutti gli altri componenti XOOPS.

DocumentazioneDescrizione
XoopsObjectClasse base per tutti gli oggetti dati in XOOPS
XoopsObjectHandlerPattern handler per operazioni CRUD

Astrazione del database e utilità di costruzione query.

DocumentazioneDescrizione
XoopsDatabaseLivello di astrazione del database
Sistema CriteriaCriteri di query e condizioni
QueryBuilderCostruzione query fluente moderna

Generazione e validazione di form HTML.

DocumentazioneDescrizione
XoopsFormContenitore form e rendering
Elementi FormTutti i tipi di elemento form disponibili

Componenti di sistema core e servizi.

DocumentazioneDescrizione
Classi KernelKernel di sistema e componenti core

Gestione moduli e ciclo di vita.

DocumentazioneDescrizione
Sistema ModuliCaricamento, installazione e gestione moduli

Integrazione Smarty template.

DocumentazioneDescrizione
Sistema TemplateIntegrazione Smarty e gestione template

Gestione utenti e autenticazione.

DocumentazioneDescrizione
Sistema UtentiAccount utenti, gruppi e permessi
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

L’API XOOPS implementa diversi pattern di design ben noti:

Utilizzato per servizi globali come connessioni al database e istanze di contenitori.

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

I handler di oggetti creano oggetti di dominio in modo coerente.

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

I form contengono più elementi form; i criteri possono contenere criteri annidati.

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

Il sistema di eventi consente un accoppiamento debole tra moduli.

$dispatcher->addListener('module.news.article_published', $callback);
// Ottieni l'handler
$handler = xoops_getHandler('user');
// Crea un nuovo oggetto
$user = $handler->create();
$user->setVar('uname', 'newuser');
$user->setVar('email', 'user@example.com');
// Salva nel database
$handler->insert($user);
// Crea criteri
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('level', 0, '>'));
$criteria->setSort('uname');
$criteria->setOrder('ASC');
$criteria->setLimit(10);
// Ottieni oggetti
$handler = xoops_getHandler('user');
$users = $handler->getObjects($criteria);
$form = new XoopsThemeForm('Profilo Utente', 'userform', 'save.php', 'post', true);
$form->addElement(new XoopsFormText('Nome Utente', '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();
TipoConvenzioneEsempio
ClassiPascalCaseXoopsUser, CriteriaCompo
MetodicamelCasegetVar(), setVar()
ProprietàcamelCase (protette)$_vars, $_handler
CostantiUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Tabelle Databasesnake_caseusers, groups_users_link

XOOPS definisce tipi di dati standard per le variabili di oggetto:

CostanteTipoDescrizione
XOBJ_DTYPE_TXTBOXStringInput testo (bonificato)
XOBJ_DTYPE_TXTAREAStringContenuto textarea
XOBJ_DTYPE_INTIntegerValori numerici
XOBJ_DTYPE_URLStringValidazione URL
XOBJ_DTYPE_EMAILStringValidazione email
XOBJ_DTYPE_ARRAYArrayArray serializzati
XOBJ_DTYPE_OTHERMixedGestione personalizzata
XOBJ_DTYPE_SOURCEStringCodice sorgente (bonifica minima)
XOBJ_DTYPE_STIMEIntegerTimestamp breve
XOBJ_DTYPE_MTIMEIntegerTimestamp medio
XOBJ_DTYPE_LTIMEIntegerTimestamp lungo

L’API supporta molteplici metodi di autenticazione:

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

Utilizza la sessione XOOPS esistente quando accedi.

Quando l’API REST è abilitata:

EndpointMetodoDescrizione
/api.php/rest/usersGETElenca utenti
/api.php/rest/users/{id}GETOttieni utente per ID
/api.php/rest/usersPOSTCrea utente
/api.php/rest/users/{id}PUTAggiorna utente
/api.php/rest/users/{id}DELETEElimina utente
/api.php/rest/modulesGETElenca moduli
  • Guida Sviluppo Moduli
  • Guida Sviluppo Temi
  • Configurazione Sistema
  • Migliori Pratiche di Sicurezza
VersioneModifiche
2.5.11Versione stabile attuale
2.5.10Aggiunto supporto API GraphQL
2.5.9Sistema Criteria migliorato
2.5.8Supporto autoloading PSR-4

Questa documentazione fa parte della Knowledge Base XOOPS. Per gli ultimi aggiornamenti, visita il repository GitHub XOOPS.