跳到內容

XOOPS API 參考

歡迎來到全面的 XOOPS API 參考文件。本部分提供 XOOPS 內容管理系統的所有核心類別、方法和系統的詳細文件。

XOOPS API 分為多個主要子系統,每個子系統負責 CMS 功能的特定方面。了解這些 API 對於開發 XOOPS 的模組、主題和擴充功能至關重要。

所有其他 XOOPS 元件構建的基礎類別。

文件描述
XoopsObject所有 XOOPS 中資料物件的基礎類別
XoopsObjectHandlerCRUD 操作的處理程式模式

資料庫抽象和查詢構建公用程式。

文件描述
XoopsDatabase資料庫抽象層
Criteria System查詢條件和條件
QueryBuilder現代流暢的查詢構建

HTML 表單生成和驗證。

文件描述
XoopsForm表單容器和呈現
Form Elements所有可用的表單元素類型

核心系統元件和服務。

文件描述
Kernel Classes系統核心和核心元件

模組管理和生命週期。

文件描述
Module System模組載入、安裝和管理

Smarty 範本整合。

文件描述
Template SystemSmarty 整合和範本管理

使用者管理和身份驗證。

文件描述
User System使用者帳户、群組和權限
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);
// 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();
型別約定範例
ClassesPascalCaseXoopsUser, CriteriaCompo
MethodscamelCasegetVar(), setVar()
PropertiescamelCase (protected)$_vars, $_handler
ConstantsUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Database Tablessnake_caseusers, groups_users_link

XOOPS 為物件變數定義標準資料型別:

常數型別描述
XOBJ_DTYPE_TXTBOXString文字輸入(消毒)
XOBJ_DTYPE_TXTAREAString文字區域內容
XOBJ_DTYPE_INTInteger數值
XOBJ_DTYPE_URLStringURL 驗證
XOBJ_DTYPE_EMAILString電子郵件驗證
XOBJ_DTYPE_ARRAYArray序列化陣列
XOBJ_DTYPE_OTHERMixed自訂處理
XOBJ_DTYPE_SOURCEString原始程式碼(最少消毒)
XOBJ_DTYPE_STIMEInteger短時間戳
XOBJ_DTYPE_MTIMEInteger中等時間戳
XOBJ_DTYPE_LTIMEInteger長時間戳

API 支援多種認證方法:

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

使用登入時的現有 XOOPS 工作階段。

啟用 REST API 時:

端點方法描述
/api.php/rest/usersGET列出使用者
/api.php/rest/users/{id}GET按 ID 取得使用者
/api.php/rest/usersPOST建立使用者
/api.php/rest/users/{id}PUT更新使用者
/api.php/rest/users/{id}DELETE刪除使用者
/api.php/rest/modulesGET列出模組
  • Module Development Guide
  • Theme Development Guide
  • System Configuration
  • Security Best Practices
版本變更
2.5.11目前穩定版本
2.5.10新增 GraphQL API 支援
2.5.9增強 Criteria 系統
2.5.8PSR-4 自動載入支援

本文件是 XOOPS 知識庫的一部分。如需最新更新,請造訪 XOOPS GitHub 儲存庫