Přeskočit na obsah

XOOPS API Reference

Vítejte v obsáhlé referenční dokumentaci XOOPS API. Tato část poskytuje podrobnou dokumentaci pro všechny základní třídy, metody a systémy, které tvoří systém správy obsahu XOOPS.

XOOPS API je organizován do několika hlavních subsystémů, z nichž každý je zodpovědný za specifický aspekt funkčnosti CMS. Pochopení těchto API je nezbytné pro vývoj modulů, motivů a rozšíření pro XOOPS.

Třídy základů, na kterých staví všechny ostatní komponenty XOOPS.

DokumentacePopis
XOOPSObjectZákladní třída pro všechny datové objekty v XOOPS
XOOPSObjectHandlerVzor manipulátoru pro operace CRUD

Databázová abstrakce a dotazování stavebních utilit.

DokumentacePopis
XOOPSDatabaseVrstva abstrakce databáze
Systém kritériíKritéria a podmínky dotazu
QueryBuilderModerní plynulá budova dotazu

Generování a ověřování formuláře HTML.

DokumentacePopis
XOOPSFormKontejner formuláře a vykreslování
Prvky formulářeVšechny dostupné typy formulářových prvků

Základní systémové komponenty a služby.

DokumentacePopis
Třídy jádraSystémové jádro a základní komponenty

Správa modulu a životní cyklus.

DokumentacePopis
Modulový systémNačítání, instalace a správa modulů

Integrace šablony Smarty.

DokumentacePopis
Systém šablonSmarty integrace a správa šablon

Správa a ověřování uživatelů.

DokumentacePopis
Uživatelský systémUživatelské účty, skupiny a oprávnění
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 implementuje několik známých návrhových vzorů:

Používá se pro globální služby, jako jsou databázová připojení a instance kontejnerů.

$db = XOOPSDatabase::getInstance();
$container = XOOPSContainer::getInstance();

Obslužné rutiny objektů vytvářejí objekty domény konzistentně.

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

Formuláře obsahují více formulářových prvků; kritéria mohou obsahovat vnořená kritéria.

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

Systém událostí umožňuje volné spojení mezi moduly.

$dispatcher->addListener('module.news.article_published', $callback);

Příklady rychlého startu

Sekce “Příklady rychlého startu”

Vytvoření a uložení objektu

Sekce “Vytvoření a uložení objektu”
// 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);

Dotazování s kritérii

Sekce “Dotazování s kritérii”
// 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();
TypÚmluvaPříklad
TřídyPascalCaseXOOPSUser, CriteriaCompo
MetodyCamelCasegetVar(), setVar()
VlastnosticamelCase (chráněné)$_vars, $_handler
KonstantyUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Databázové tabulkyhadí_případusers, groups_users_link

XOOPS definuje standardní datové typy pro objektové proměnné:

KonstantníTypPopis
XOBJ_DTYPE_TXTBOXŘetězecZadávání textu (vyčištěno)
XOBJ_DTYPE_TXTAREAŘetězecObsah textové oblasti
XOBJ_DTYPE_INTCelé čísloČíselné hodnoty
XOBJ_DTYPE_URLŘetězecOvěření URL
XOBJ_DTYPE_EMAILŘetězecOvěření e-mailu
XOBJ_DTYPE_ARRAYPoleSerializovaná pole
XOBJ_DTYPE_OTHERSmíšenéVlastní manipulace
XOBJ_DTYPE_SOURCEŘetězecZdrojový kód (minimální sanitace)
XOBJ_DTYPE_STIMECelé čísloKrátké časové razítko
XOBJ_DTYPE_MTIMECelé čísloStřední časové razítko
XOBJ_DTYPE_LTIMECelé čísloDlouhé časové razítko

API podporuje několik metod ověřování:

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

Autentizace na základě relace

Sekce “Autentizace na základě relace”

Při přihlášení použije existující relaci XOOPS.## Koncové body REST API

Když je povoleno REST API:

Koncový bodMetodaPopis
/api.php/rest/usersGETSeznam uživatelů
/api.php/rest/users/{id}GETZískat uživatele podle ID
/api.php/rest/usersPOSTVytvořit uživatele
/api.php/rest/users/{id}PUTAktualizovat uživatele
/api.php/rest/users/{id}DELETESmazat uživatele
/api.php/rest/modulesGETSeznam modulů

Související dokumentace

Sekce “Související dokumentace”
  • Průvodce vývojem modulu
  • Průvodce rozvojem tématu
  • Konfigurace systému
  • Nejlepší bezpečnostní postupy
VerzeZměny
2.5.11Aktuální stabilní verze
2.5.10Přidána podpora GraphQL API
2.5.9Rozšířený systém kritérií
2.5.8Podpora automatického načítání PSR-4

Tato dokumentace je součástí znalostní báze XOOPS. Nejnovější aktualizace naleznete v úložišti XOOPS GitHub.