跳转到内容

“XOOPSAPI参考”

欢迎使用全面的 XOOPS API 参考文档。本节提供构成 XOOPS 内容管理系统的所有核心类、方法和系统的详细文档。

XOOPS API 被组织成几个主要子系统,每个子系统负责CMS 功能的特定方面。了解这些 API 对于开发 XOOPS 的模区块、主题和扩展至关重要。

所有其他 XOOPS 组件构建的基础类。

文档描述
XOOPS对象XOOPS
XOOPSObjectHandlerCRUD 操作的处理程序模式

数据库抽象和查询构建实用程序。

文档描述
XOOPS数据库数据库抽象层
标准体系查询标准及条件
查询生成器现代流畅的查询构建

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 实现了多种良好的-known 设计模式:

用于数据库连接和容器实例等全局服务。

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

对象处理程序一致地创建域对象。

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

表单包含多个表单元素; criteria 可以包含嵌套条件。

$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();
类型大会示例
课程帕斯卡案例XOOPSUserCriteriaCompo
方法驼峰式getVar()setVar()
属性驼峰式命名法(受保护)$_vars$_handler
常数UPPER_SNAKE_CASEXOBJ_DTYPE_INT
数据库表蛇箱usersgroups_users_link

XOOPS定义了对象变量的标准数据类型:|恒定|类型 |描述 | |----------|------|-------------| | XOBJ_DTYPE_TXTBOX |字符串|文本输入(已清理)| | XOBJ_DTYPE_TXTAREA |字符串|文本区域内容 | | 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

登录时使用现有的XOOPS会话。

当RESTAPI启用时:

端点方法描述
/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列出模区块
  • 模区块开发指南
  • 主题开发指南
  • 系统配置
  • 安全最佳实践
版本变化
11.2.5当前稳定版本
2.5.10添加了 GraphQL API 支持
2.5.92.5.9增强的标准系统
2.5.8PSR-4 自动加载支持

本文档是 XOOPS 知识库的一部分。有关最新更新,请访问 XOOPS GitHub repository.