Skip to content

XOOPS API Referenca

Dobro došli u sveobuhvatnu referentnu dokumentaciju XOOPS API. Ovaj odjeljak pruža detaljnu dokumentaciju za sve osnovne classes, metode i sustave koji čine XOOPS sustav upravljanja sadržajem.

XOOPS API organiziran je u nekoliko glavnih podsustava, od kojih je svaki odgovoran za određeni aspekt CMS funkcionalnosti. Razumijevanje ovih API-ja bitno je za razvoj modules, themes i proširenja za XOOPS.

Temelj classes na kojem se grade sve ostale komponente XOOPS.

DokumentacijaOpis
XoopsObjectBaza class za sve podatkovne objekte u XOOPS
XoopsObjectHandlerUzorak rukovatelja za operacije CRUD

Pomoćni programi za apstrakciju baze podataka i izradu upita.

DokumentacijaOpis
XoopsBaza podatakaSloj apstrakcije baze podataka
Sustav kriterijaKriteriji i uvjeti upita
QueryBuilderModerna tečna izrada upita

HTML Generiranje obrazaca i provjera valjanosti.

DokumentacijaOpis
XoopsFormSpremnik obrazaca i renderiranje
Elementi obrascaSve dostupne vrste elemenata obrasca

Osnovne komponente i usluge sustava.

DokumentacijaOpis
Klase jezgreSustav kernel i osnovne komponente

Upravljanje i životni ciklus modula.

DokumentacijaOpis
Sustav modulaUčitavanje modula, instalacija i upravljanje

Integracija predloška Smarty.

DokumentacijaOpis
Sustav predložakaSmarty integracija i upravljanje predlošcima

Upravljanje korisnicima i provjera autentičnosti.

DokumentacijaOpis
Korisnički sustavKorisnički računi, grupe i dopuštenja
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 nekoliko dobro poznatih obrazaca dizajna:

Koristi se za globalne usluge kao što su veze s bazom podataka i instance spremnika.

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

Rukovatelji objektima dosljedno stvaraju objekte domene.

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

Obrasci sadrže više elemenata obrasca; kriteriji mogu sadržavati ugniježđene kriterije.

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

Sustav događaja dopušta labavu vezu između modules.

$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();

Konvencije imenovanja| Upišite | Konvencija | Primjer |

Section titled “Konvencije imenovanja| Upišite | Konvencija | Primjer |”

|------|-----------|---------| | Nastava | PascalCase | XoopsUser, CriteriaCompo | | Metode | devina kutija | getVar(), setVar() | | Svojstva | camelCase (zaštićeno) | $_vars, $_handler | | Konstante | GORNJA_SLOVNA_ZMIJA | XOBJ_DTYPE_INT | | Tablice baze podataka | slučaj_zmije | users, groups_users_link |

XOOPS definira standardne tipove podataka za varijable objekta:

KonstantaUpišiteOpis
XOBJ_DTYPE_TXTBOXNizUnos teksta (očišćeno)
XOBJ_DTYPE_TXTAREANizTekstualni sadržaj
XOBJ_DTYPE_INTCijeli brojNumeričke vrijednosti
XOBJ_DTYPE_URLNizURL provjera valjanosti
XOBJ_DTYPE_EMAILNizProvjera valjanosti e-pošte
XOBJ_DTYPE_ARRAYNizSerializirani nizovi
XOBJ_DTYPE_OTHERMješovitiPrilagođeno rukovanje
XOBJ_DTYPE_SOURCENizIzvorni kod (minimalna dezinfekcija)
XOBJ_DTYPE_STIMECijeli brojKratka vremenska oznaka
XOBJ_DTYPE_MTIMECijeli brojSrednja vremenska oznaka
XOBJ_DTYPE_LTIMECijeli brojDuga vremenska oznaka

API podržava višestruke metode provjere autentičnosti:

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

Koristi postojeću XOOPS sesiju kada je prijavljen.

Kada je REST API omogućen:

Krajnja točkaMetodaOpis
/api.php/rest/usersDOBITIPopis korisnika
/api.php/rest/users/{id}DOBITIDohvati korisnika prema ID-u
/api.php/rest/usersOBJAVIStvori korisnika
/api.php/rest/users/{id}STAVITIAžuriraj korisnika
/api.php/rest/users/{id}IZBRIŠIIzbriši korisnika
/api.php/rest/modulesDOBITIPopis modules
  • Vodič za razvoj modula
  • Vodič za razvoj teme
  • Konfiguracija sustava
  • Najbolje sigurnosne prakse
VerzijaPromjene
2.5.11Trenutno stabilno izdanje
2.5.10Dodana podrška za GraphQL API
2.5.9Poboljšani sustav kriterija
2.5.8PSR-4 podrška za automatsko učitavanje

Ova dokumentacija dio je XOOPS baze znanja. Za najnovija ažuriranja posjetite XOOPS GitHub repozitorij.