Gå til indhold

XOOPS API Reference

Velkommen til den omfattende XOOPS API referencedokumentation. Dette afsnit indeholder detaljeret dokumentation for alle kerneklasser, metoder og systemer, der udgør XOOPS Content Management System.

XOOPS API er organiseret i flere store undersystemer, der hver især er ansvarlige for et specifikt aspekt af CMS-funktionaliteten. Det er vigtigt at forstå disse API’er for at udvikle moduler, temaer og udvidelser til XOOPS.

Fundamentklasserne, som alle andre XOOPS-komponenter bygger på.

DokumentationBeskrivelse
XoopsObjectBasisklasse for alle dataobjekter i XOOPS
XoopsObjectHandlerHåndtermønster for CRUD-operationer

Databaseabstraktion og forespørgselsbygningsværktøjer.

DokumentationBeskrivelse
XoopsDatabaseDatabaseabstraktionslag
KriteriesystemForespørgselskriterier og -betingelser
QueryBuilderModerne flydende forespørgsel bygning

HTML formulargenerering og validering.

DokumentationBeskrivelse
XoopsFormFormbeholder og gengivelse
FormelementerAlle tilgængelige formularelementtyper

Kernesystemkomponenter og -tjenester.

DokumentationBeskrivelse
KernelklasserSystemkerne og kernekomponenter

Modulstyring og livscyklus.

DokumentationBeskrivelse
ModulsystemModulindlæsning, installation og styring

Smart skabelonintegration.

DokumentationBeskrivelse
SkabelonsystemSmart integration og skabelonstyring

Brugerstyring og autentificering.

DokumentationBeskrivelse
BrugersystemBrugerkonti, grupper og tilladelser
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

XOOPS API implementerer flere velkendte designmønstre:

Bruges til globale tjenester som databaseforbindelser og containerforekomster.

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

Objektbehandlere opretter domæneobjekter konsekvent.

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

Formularer indeholder flere formularelementer; kriterier kan indeholde indlejrede kriterier.

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

Eventsystemet tillader løs kobling mellem moduler.

$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();
SkrivKonventionEksempel
KlasserPascalCaseXoopsUser, CriteriaCompo
MetodercamelCasegetVar(), setVar()
EjendommecamelCase (beskyttet)$_vars, $_handler
KonstanterUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Databasetabellerslangekasseusers, groups_users_link

XOOPS definerer standarddatatyper for objektvariable:| Konstant | Skriv | Beskrivelse | |--------|------|------------| | XOBJ_DTYPE_TXTBOX | String | Tekstinput (saneret) | | XOBJ_DTYPE_TXTAREA | String | Tekstområdeindhold | | XOBJ_DTYPE_INT | Heltal | Numeriske værdier | | XOBJ_DTYPE_URL | String | URL validering | | XOBJ_DTYPE_EMAIL | String | E-mail validering | | XOBJ_DTYPE_ARRAY | Array | Serialiserede arrays | | XOBJ_DTYPE_OTHER | Blandet | Brugerdefineret håndtering | | XOBJ_DTYPE_SOURCE | String | Kildekode (minimal desinficering) | | XOBJ_DTYPE_STIME | Heltal | Kort tidsstempel | | XOBJ_DTYPE_MTIME | Heltal | Mellem tidsstempel | | XOBJ_DTYPE_LTIME | Heltal | Langt tidsstempel |

API understøtter flere godkendelsesmetoder:

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

Bruger eksisterende XOOPS-session, når du er logget ind.

Når REST API er aktiveret:

SlutpunktMetodeBeskrivelse
/api.php/rest/usersGETListe over brugere
/api.php/rest/users/{id}GETHent bruger efter ID
/api.php/rest/usersPOSTOpret bruger
/api.php/rest/users/{id}PUTOpdater bruger
/api.php/rest/users/{id}DELETESlet bruger
/api.php/rest/modulesGETListe over moduler
  • Moduludviklingsvejledning
  • Guide til temaudvikling
  • Systemkonfiguration
  • Bedste praksis for sikkerhed
VersionÆndringer
2.5.11Aktuel stabil udgivelse
2.5.10Tilføjet GraphQL API support
2.5.9Forbedret kriteriesystem
2.5.8PSR-4 autoloading support

Denne dokumentation er en del af XOOPS Knowledge Base. Besøg XOOPS GitHub-lageret for at få de seneste opdateringer.