Tovább a tartalomhoz

XOOPS API referencia

Üdvözöljük az átfogó XOOPS API referenciadokumentációban. Ez a rész részletes dokumentációt tartalmaz a XOOPS tartalomkezelő rendszert alkotó összes alapvető osztályhoz, metódushoz és rendszerhez.

A XOOPS API több fő alrendszerbe szerveződik, amelyek mindegyike a CMS funkció egy-egy aspektusáért felelős. Ezen API-k megértése elengedhetetlen a XOOPS modulok, témák és bővítmények fejlesztéséhez.

Azok az alaposztályok, amelyekre az összes többi XOOPS komponens épül.

DokumentációLeírás
XOOPSObjectAlaposztály a XOOPS
XOOPSObjectHandlerKezelőminta CRUD műveletekhez

Adatbázis-absztrakció és lekérdezésépítő segédprogramok.

DokumentációLeírás
XOOPSDatabaseAdatbázis-absztrakciós réteg
KritériumrendszerLekérdezési feltételek és feltételek
QueryBuilderModern gördülékeny lekérdezés épület

HTML űrlap létrehozása és érvényesítése.

DokumentációLeírás
XOOPSFormŰrlaptartály és renderelés
ŰrlapelemekMinden elérhető űrlapelem-típus

Alapvető rendszerelemek és szolgáltatások.

DokumentációLeírás
Kernel osztályokRendszermag és alapvető összetevők

modulkezelés és életciklus.

DokumentációLeírás
modulrendszermodul betöltése, telepítése és kezelése

Okos sablon integráció.

DokumentációLeírás
SablonrendszerIntelligens integráció és sablonkezelés

Felhasználókezelés és hitelesítés.

DokumentációLeírás
Felhasználói rendszerFelhasználói fiókok, csoportok és engedélyek
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

A XOOPS API számos jól ismert tervezési mintát valósít meg:

Globális szolgáltatásokhoz, például adatbázis-kapcsolatokhoz és konténerpéldányokhoz használják.

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

Az objektumkezelők következetesen hoznak létre tartományobjektumokat.

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

Az űrlapok több űrlapelemet tartalmaznak; A feltételek beágyazott feltételeket tartalmazhatnak.

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

Az eseményrendszer lehetővé teszi a modulok közötti laza csatolást.

$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();
TípusEgyezményPélda
OsztályokPascalCaseXOOPSUser, CriteriaCompo
MódszerekteveTokgetVar(), setVar()
TulajdonságokteveTok (védett)$_vars, $_handler
ÁllandókUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Adatbázis táblázatokkígyótokusers, groups_users_link

A XOOPS szabványos adattípusokat határoz meg az objektumváltozókhoz:

ÁllandóTípusLeírás
XOBJ_DTYPE_TXTBOXStringSzövegbevitel (fertőtlenített)
XOBJ_DTYPE_TXTAREAStringSzövegterület tartalma
XOBJ_DTYPE_INTEgészNumerikus értékek
XOBJ_DTYPE_URLStringURL érvényesítés
XOBJ_DTYPE_EMAILStringE-mail ellenőrzés
XOBJ_DTYPE_ARRAYArraySoros tömbök
XOBJ_DTYPE_OTHERVegyesEgyedi kezelés
XOBJ_DTYPE_SOURCEStringForráskód (minimális fertőtlenítés)
XOBJ_DTYPE_STIMEEgészRövid időbélyeg
XOBJ_DTYPE_MTIMEEgészKözepes időbélyeg
XOBJ_DTYPE_LTIMEEgészHosszú időbélyeg

A API többféle hitelesítési módszert támogat:### API Kulcs hitelesítés

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

A meglévő XOOPS munkamenetet használja, amikor bejelentkezik.

Ha a REST API engedélyezve van:

VégpontMódszerLeírás
/api.php/rest/usersGETFelhasználók listázása
/api.php/rest/users/{id}GETFelhasználó létrehozása a ID
/api.php/rest/usersPOSTFelhasználó létrehozása
/api.php/rest/users/{id}PUTFelhasználó frissítése
/api.php/rest/users/{id}DELETEFelhasználó törlése
/api.php/rest/modulesGETmodulok listázása
  • modulfejlesztési útmutató
  • Témafejlesztési útmutató
  • Rendszerkonfiguráció
  • Bevált biztonsági gyakorlatok
VerzióVáltozások
2.5.11Jelenlegi stabil kiadás
2.5.10GraphQL API támogatás hozzáadva
2.5.9Továbbfejlesztett kritériumrendszer
2.5.8PSR-4 automatikus betöltés támogatása

Ez a dokumentáció a XOOPS Tudásbázis része. A legfrissebb frissítésekért keresse fel a XOOPS GitHub adattárat.