Przejdź do głównej zawartości

Odniesienie API XOOPS

Witaj w kompleksowej dokumentacji Odniesienia API XOOPS. Ta sekcja zawiera szczegółową dokumentację wszystkich klas rdzenia, metod i systemów, które tworzą System Zarządzania Treścią XOOPS.

API XOOPS jest zorganizowane w kilka głównych podsystemów, każdy odpowiedzialny za konkretny aspekt funkcjonalności CMS. Zrozumienie tych interfejsów API jest niezbędne do rozwijania modułów, motywów i rozszerzeń dla XOOPS.

Klasy fundamentalne, na których budują się wszystkie inne komponenty XOOPS.

DokumentacjaOpis
XoopsObjectKlasa bazowa dla wszystkich obiektów danych w XOOPS
XoopsObjectHandlerWzorzec handlera dla operacji CRUD

Abstrakcja bazy danych i narzędzia do budowania zapytań.

DokumentacjaOpis
XoopsDatabaseWarstwa abstrakcji bazy danych
System KryteriówKryteria zapytań i warunki
QueryBuilderNowoczesne fluent budowanie zapytań

Generowanie i walidacja formularzy HTML.

DokumentacjaOpis
XoopsFormKontener i renderowanie formularzy
Elementy FormularzaWszystkie dostępne typy elementów formularza

Główne komponenty systemu i usługi.

DokumentacjaOpis
Klasy RdzeniaSystem rdzenia i główne komponenty

Zarządzanie modułami i cykl życia.

DokumentacjaOpis
System ModułówŁadowanie, instalacja i zarządzanie modułami

Integracja szablonów Smarty.

DokumentacjaOpis
System SzablonówIntegracja Smarty i zarządzanie szablonami

Zarządzanie użytkownikami i uwierzytelnianie.

DokumentacjaOpis
System UżytkownikówKonta użytkowników, grupy i uprawnienia
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

API XOOPS implementuje kilka znanych wzorców projektowych:

Używany dla globalnych usług, takich jak połączenia z bazą danych i instancje kontenerów.

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

Handlery obiektów tworzą obiekty domeny w spójny sposób.

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

Formularze zawierają wiele elementów formularza; kryteria mogą zawierać zagnieżdżone kryteria.

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

System zdarzeń umożliwia luźne połączenie między modułami.

$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();
TypKonwencjaPrzykład
KlasyPascalCaseXoopsUser, CriteriaCompo
MetodycamelCasegetVar(), setVar()
WłaściwościcamelCase (protected)$_vars, $_handler
StałeUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Tabele Bazy Danychsnake_caseusers, groups_users_link

XOOPS definiuje standardowe typy danych dla zmiennych obiektów:

StałaTypOpis
XOBJ_DTYPE_TXTBOXStringWejście tekstowe (oczyść)
XOBJ_DTYPE_TXTAREAStringZawartość obszaru tekstowego
XOBJ_DTYPE_INTIntegerWartości liczbowe
XOBJ_DTYPE_URLStringWalidacja URL
XOBJ_DTYPE_EMAILStringWalidacja poczty e-mail
XOBJ_DTYPE_ARRAYArraySerializowane tablice
XOBJ_DTYPE_OTHERMixedObsługa niestandardowa
XOBJ_DTYPE_SOURCEStringKod źródłowy (minimalna dezinfekcja)
XOBJ_DTYPE_STIMEIntegerKrótka sygnatura czasowa
XOBJ_DTYPE_MTIMEIntegerŚrednia sygnatura czasowa
XOBJ_DTYPE_LTIMEIntegerDługa sygnatura czasowa

API obsługuje wiele metod uwierzytelniania:

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

Wykorzystuje istniejącą sesję XOOPS, gdy jest zalogowany.

Gdy jest włączony REST API:

Punkt KońcowyMetodaOpis
/api.php/rest/usersGETLista użytkowników
/api.php/rest/users/{id}GETPobierz użytkownika po ID
/api.php/rest/usersPOSTUtwórz użytkownika
/api.php/rest/users/{id}PUTZaktualizuj użytkownika
/api.php/rest/users/{id}DELETEUsuń użytkownika
/api.php/rest/modulesGETLista modułów
  • Przewodnik Rozwoju Modułów
  • Przewodnik Rozwoju Motywów
  • Konfiguracja Systemu
  • Najlepsze Praktyki Bezpieczeństwa
WersjaZmiany
2.5.11Obecny wydanie stabilne
2.5.10Dodano obsługę GraphQL API
2.5.9Udoskonalony system Kryteriów
2.5.8Obsługa autouzupełniania PSR-4

Ta dokumentacja jest częścią Bazy Wiedzy XOOPS. Aby uzyskać najnowsze aktualizacje, odwiedź repozytorium XOOPS na GitHub.