Перейти до вмісту

XOOPS API Посилання

Ласкаво просимо до повної довідкової документації XOOPS API. У цьому розділі міститься детальна документація для всіх основних класів, методів і систем, які складають систему керування вмістом XOOPS.

XOOPS API організовано в кілька основних підсистем, кожна з яких відповідає за певний аспект функціональності CMS. Розуміння цих API є важливим для розробки модулів, тем і розширень для XOOPS.

Базові класи, на яких будуються всі інші компоненти XOOPS.

ДокументаціяОпис
XoopsObjectБазовий клас для всіх об’єктів даних у XOOPS
XoopsObjectHandlerШаблон обробника для операцій CRUD

Утиліти абстрагування бази даних і створення запитів.

ДокументаціяОпис
База даних XoopsРівень абстракції бази даних
Система критеріївКритерії та умови запиту
QueryBuilderСучасне плавне створення запитів

Створення та перевірка форми HTML.

ДокументаціяОпис
XoopsFormКонтейнер форми та візуалізація
Елементи формиУсі доступні типи елементів форми

Основні системні компоненти та служби.

ДокументаціяОпис
Класи ядраЯдро системи та основні компоненти

Управління модулями та життєвий цикл.

ДокументаціяОпис
Модуль системиЗавантаження, встановлення та керування модулем

Інтеграція шаблону Smarty.

ДокументаціяОпис
Система шаблонівSmarty інтеграція та керування шаблонами

Керування користувачами та аутентифікація.

ДокументаціяОпис
Система користувачаОблікові записи користувачів, групи та дозволи
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 реалізує кілька відомих шаблонів проектування:

Використовується для глобальних служб, таких як підключення до бази даних і екземпляри контейнерів.

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

Обробники об’єктів створюють об’єкти домену послідовно.

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

Форми містять кілька елементів форми; критерії можуть містити вкладені критерії.

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

Система подій допускає слабкий зв’язок між модулями.

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

Приклади швидкого запуску

Section titled “Приклади швидкого запуску”

Створення та збереження об’єкта

Section titled “Створення та збереження об’єкта”
// 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();
ТипКонвенціяПриклад
КласиPascalCaseXoopsUser, CriteriaCompo
МетодиCamelCasegetVar(), setVar()
ВластивостіcamelCase (захищений)$_vars, $_handler
КонстантиUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Таблиці бази данихsnake_caseusers, groups_users_link

XOOPS визначає стандартні типи даних для змінних об’єктів:

ПостійнийТипОпис
XOBJ_DTYPE_TXTBOXРядокВведення тексту (дезінфіковано)
XOBJ_DTYPE_TXTAREAРядокВміст Textarea
XOBJ_DTYPE_INTЦілеЧислові значення
XOBJ_DTYPE_URLРядокПеревірка URL
XOBJ_DTYPE_EMAILРядокПеревірка електронної пошти
XOBJ_DTYPE_ARRAYМасивСеріалізовані масиви
XOBJ_DTYPE_OTHERЗмішанийІндивідуальна обробка
XOBJ_DTYPE_SOURCEРядокВихідний код (мінімальна обробка)
XOBJ_DTYPE_STIMEЦілеКоротка позначка часу
XOBJ_DTYPE_MTIMEЦілеСередня позначка часу
XOBJ_DTYPE_LTIMEЦілеДовга позначка часу

API підтримує кілька методів автентифікації:

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

Автентифікація на основі сеансу

Section titled “Автентифікація на основі сеансу”

Використовує наявний сеанс XOOPS під час входу.

Коли REST API увімкнено:

Кінцева точкаМетодОпис
/api.php/rest/usersОТРИМАТИСписок користувачів
/api.php/rest/users/{id}ОТРИМАТИОтримати користувача за ID
/api.php/rest/usersОпублікуватиСтворити користувача
/api.php/rest/users/{id}ПОСТАВИТИОновити користувача
/api.php/rest/users/{id}ВИДАЛИТИВидалити користувача
/api.php/rest/modulesОТРИМАТИСписок модулів

Пов’язана документація

Section titled “Пов’язана документація”
  • Посібник із розробки модуля
  • Керівництво з розробки теми
  • Конфігурація системи
  • Найкращі методи безпеки
ВерсіяЗміни
2.5.11Поточний стабільний випуск
2.5.10Додано підтримку GraphQL API
2.5.9Розширена система критеріїв
2.5.8PSR-4 підтримка автозавантаження

Ця документація є частиною бази знань XOOPS. Щоб отримати останні оновлення, відвідайте репозиторій XOOPS GitHub.