Ga naar inhoud

XOOPS API Referentie

Welkom bij de uitgebreide XOOPS API referentiedocumentatie. Dit gedeelte biedt gedetailleerde documentatie voor alle kernklassen, methoden en systemen waaruit het XOOPS Content Management System bestaat.

De XOOPS API is georganiseerd in verschillende grote subsystemen, die elk verantwoordelijk zijn voor een specifiek aspect van de CMS-functionaliteit. Het begrijpen van deze API’s is essentieel voor het ontwikkelen van modules, thema’s en uitbreidingen voor XOOPS.

De basisklassen waarop alle andere XOOPS-componenten voortbouwen.

DocumentatieBeschrijving
XoopsObjectBasisklasse voor alle data-objecten in XOOPS
XoopsObjectHandlerHandlerpatroon voor CRUD-bewerkingen

Hulpprogramma’s voor database-abstractie en het bouwen van query’s.

DocumentatieBeschrijving
XoopsDatabaseDatabase-abstractielaag
CriteriasysteemZoekcriteria en voorwaarden
QueryBuilderModern vloeiend query bouwen

HTML formulier genereren en valideren.

DocumentatieBeschrijving
XoopsFormFormuliercontainer en weergave
FormulierelementenAlle beschikbare formulierelementtypen

Kernsysteemcomponenten en services.

DocumentatieBeschrijving
KernelklassenSysteemkernel en kerncomponenten

Modulebeheer en levenscyclus.

DocumentatieBeschrijving
ModulesysteemModule laden, installeren en beheren

Smarty-sjabloonintegratie.

DocumentatieBeschrijving
SjabloonsysteemSlimme integratie en sjabloonbeheer

Gebruikersbeheer en authenticatie.

DocumentatieBeschrijving
GebruikerssysteemGebruikersaccounts, groepen en machtigingen
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

De XOOPS API implementeert verschillende bekende ontwerppatronen:

Gebruikt voor mondiale services zoals databaseverbindingen en containerinstanties.

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

Objecthandlers creëren consistent domeinobjecten.

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

Formulieren bevatten meerdere formulierelementen; criteria kunnen geneste criteria bevatten.

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

Het evenementensysteem maakt losse koppeling tussen modules mogelijk.

$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();
TypConventieVoorbeeld
KlassenPascalCaseXoopsUser, CriteriaCompo
MethodenkameelCasegetVar(), setVar()
EigenschappencamelCase (beschermd)$_vars, $_handler
ConstantenUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Databasetabellensnake_caseusers, groups_users_link

XOOPS definieert standaardgegevenstypen voor objectvariabelen:

ConstanteTypBeschrijving
XOBJ_DTYPE_TXTBOXTekenreeksTekstinvoer (opgeschoond)
XOBJ_DTYPE_TXTAREATekenreeksInhoud tekstgebied
XOBJ_DTYPE_INTGeheel getalNumerieke waarden
XOBJ_DTYPE_URLTekenreeksURL-validatie
XOBJ_DTYPE_EMAILTekenreeksE-mailvalidatie
XOBJ_DTYPE_ARRAYArrayGeserialiseerde arrays
XOBJ_DTYPE_OTHERGemengdAangepaste afhandeling
XOBJ_DTYPE_SOURCETekenreeksBroncode (minimale sanering)
XOBJ_DTYPE_STIMEGeheel getalKorte tijdstempel
XOBJ_DTYPE_MTIMEGeheel getalMiddellange tijdstempel
XOBJ_DTYPE_LTIMEGeheel getalLange tijdstempel

De API ondersteunt meerdere authenticatiemethoden:### API sleutelauthenticatie

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

Maakt gebruik van de bestaande XOOPS-sessie wanneer u bent ingelogd.

Wanneer de REST API is ingeschakeld:

EindpuntWerkwijzeBeschrijving
/api.php/rest/usersGETLijst gebruikers
/api.php/rest/users/{id}GETGebruiker op ID ophalen
/api.php/rest/usersPOSTGebruiker aanmaken
/api.php/rest/users/{id}PUTGebruiker bijwerken
/api.php/rest/users/{id}DELETEGebruiker verwijderen
/api.php/rest/modulesGETLijstmodules
  • Module-ontwikkelingsgids
  • Thema-ontwikkelingsgids
  • Systeemconfiguratie
  • Beste praktijken op het gebied van beveiliging
VersieWijzigingen
2.5.11Huidige stabiele release
2.5.10Ondersteuning voor GraphQL API toegevoegd
2.5.9Verbeterd criteriasysteem
2.5.8PSR-4 ondersteuning voor automatisch laden

Deze documentatie maakt deel uit van de XOOPS Knowledge Base. Ga voor de nieuwste updates naar de XOOPS GitHub-repository.