Skip to content

XOOPS API Referenca

Dobrodošli v obsežni XOOPS API referenčni dokumentaciji. Ta razdelek ponuja podrobno dokumentacijo za vse osnovne razrede, metode in sisteme, ki sestavljajo XOOPS sistem za upravljanje vsebine.

XOOPS API je organiziran v več glavnih podsistemov, od katerih je vsak odgovoren za določen vidik funkcionalnosti CMS. Razumevanje teh API-jev je bistveno za razvoj modulov, tem in razširitev za XOOPS.

Temeljni razredi, na katerih gradijo vse druge komponente XOOPS.

DokumentacijaOpis
XoopsObjectOsnovni razred za vse podatkovne objekte v XOOPS
XoopsObjectHandlerVzorec upravljalnika za operacije CRUD

Pripomočki za abstrakcijo baze podatkov in gradnjo poizvedb.

DokumentacijaOpis
XoopsDatabaseAbstraktna plast baze podatkov
Sistem merilMerila in pogoji poizvedbe
QueryBuilderSodobna tekoča izdelava poizvedb

HTML generiranje in potrjevanje obrazcev.

DokumentacijaOpis
XoopsFormVsebnik obrazca in upodabljanje
Elementi obrazcaVse razpoložljive vrste elementov obrazca

Osnovne sistemske komponente in storitve.

DokumentacijaOpis
Razredi jedraSistemsko jedro in osnovne komponente

Upravljanje in življenjski cikel modulov.

DokumentacijaOpis
Sistem modulovNalaganje, namestitev in upravljanje modula

Integracija predloge Smarty.

DokumentacijaOpis
Sistem predlogIntegracija Smarty in upravljanje predlog

Upravljanje uporabnikov in avtentikacija.

DokumentacijaOpis
Uporabniški sistemUporabniški računi, skupine in dovoljenja
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 implementira več dobro znanih oblikovalskih vzorcev:

Uporablja se za globalne storitve, kot so povezave z bazo podatkov in primerki vsebnika.

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

Upravljavci objektov dosledno ustvarjajo objekte domene.

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

Obrazci vsebujejo več elementov obrazca; kriteriji lahko vsebujejo ugnezdene kriterije.

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

Sistem dogodkov omogoča ohlapno povezavo med moduli.

$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();
VrstaKonvencijaPrimer
RazrediPascalCaseXoopsUser, CriteriaCompo
MetodeCamelCasegetVar(), setVar()
LastnosticamelCase (zaščiteno)$_vars, $_handler
KonstanteUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Tabele baze podatkovsnake_caseusers, groups_users_link

XOOPS definira standardne tipe podatkov za spremenljivke objekta:

KonstantaVrstaOpis
XOBJ_DTYPE_TXTBOXNizVnos besedila (prečiščeno)
XOBJ_DTYPE_TXTAREANizVsebina besedilnega polja
XOBJ_DTYPE_INTCelo številoŠtevilske vrednosti
XOBJ_DTYPE_URLNizURL validacija
XOBJ_DTYPE_EMAILNizPreverjanje elektronske pošte
XOBJ_DTYPE_ARRAYNizSerializirana polja
XOBJ_DTYPE_OTHERMešanoObdelava po meri
XOBJ_DTYPE_SOURCENizIzvorna koda (minimalna sanacija)
XOBJ_DTYPE_STIMECelo številoKratek časovni žig
XOBJ_DTYPE_MTIMECelo številoSrednji časovni žig
XOBJ_DTYPE_LTIMECelo številoDolg časovni žig

API podpira več načinov preverjanja pristnosti:

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

Ko je prijavljen, uporablja obstoječo sejo XOOPS.

Ko je REST API omogočen:

Končna točkaMetodaOpis
/api.php/rest/usersGETSeznam uporabnikov
/api.php/rest/users/{id}GETPridobi uporabnika po ID
/api.php/rest/usersPOSTUstvari uporabnika
/api.php/rest/users/{id}PUTPosodobi uporabnika
/api.php/rest/users/{id}DELETEIzbriši uporabnika
/api.php/rest/modulesGETSeznam modulov
  • Vodnik za razvoj modula
  • Vodnik za razvoj teme
  • Konfiguracija sistema
  • Najboljše varnostne prakse
RazličicaSpremembe
2.5.11Trenutna stabilna izdaja
2.5.10Dodana podpora za GraphQL API
2.5.9Izboljšan sistem meril
2.5.8PSR-4 podpora za samodejno nalaganje

Ta dokumentacija je del zbirke znanja XOOPS. Za najnovejše posodobitve obiščite XOOPS repozitorij GitHub.