ข้ามไปยังเนื้อหา

XOOPS API ข้อมูลอ้างอิง

ยินดีต้อนรับสู่เอกสารอ้างอิง XOOPS API ที่ครอบคลุม ส่วนนี้ให้เอกสารประกอบโดยละเอียดสำหรับคลาสหลัก วิธีการ และระบบทั้งหมดที่ประกอบขึ้นเป็น XOOPS Content Management System

XOOPS API ได้รับการจัดระเบียบเป็นระบบย่อยหลักหลายระบบ โดยแต่ละระบบจะรับผิดชอบในด้านเฉพาะของฟังก์ชัน CMS การทำความเข้าใจ API เหล่านี้ถือเป็นสิ่งสำคัญสำหรับการพัฒนาโมดูล ธีม และส่วนขยายสำหรับ XOOPS

คลาสพื้นฐานที่ส่วนประกอบ XOOPS อื่นๆ ทั้งหมดสร้างขึ้น

เอกสารประกอบคำอธิบาย
XoopsObjectคลาสฐานสำหรับวัตถุข้อมูลทั้งหมดใน XOOPS
XoopsObjectHandlerรูปแบบตัวจัดการสำหรับการดำเนินงาน CRUD

นามธรรมฐานข้อมูลและยูทิลิตี้การสร้างแบบสอบถาม

เอกสารประกอบคำอธิบาย
Xoopsฐานข้อมูลเลเยอร์นามธรรมของฐานข้อมูล
ระบบเกณฑ์เกณฑ์และเงื่อนไขการสืบค้น
QueryBuilderการสร้างแบบสอบถามที่ทันสมัยอย่างคล่องแคล่ว

HTML การสร้างแบบฟอร์มและการตรวจสอบ

เอกสารประกอบคำอธิบาย
XoopsFormสร้างคอนเทนเนอร์และการเรนเดอร์
องค์ประกอบของแบบฟอร์มประเภทองค์ประกอบแบบฟอร์มที่มีอยู่ทั้งหมด

ส่วนประกอบและบริการของระบบหลัก

เอกสารประกอบคำอธิบาย
คลาสเคอร์เนลเคอร์เนลของระบบและส่วนประกอบหลัก

การจัดการโมดูลและวงจรชีวิต

เอกสารประกอบคำอธิบาย
ระบบโมดูลการโหลดโมดูล การติดตั้ง และการจัดการ

การรวมเทมเพลตอันชาญฉลาด

เอกสารประกอบคำอธิบาย
ระบบเทมเพลตการบูรณาการอย่างชาญฉลาดและการจัดการเทมเพลต

การจัดการผู้ใช้และการรับรองความถูกต้อง

เอกสารประกอบคำอธิบาย
ระบบผู้ใช้บัญชีผู้ใช้ กลุ่ม และการอนุญาต
mermaid
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
mermaid
classDiagram
class XoopsObject {
<<Base>>
+getVar()
+setVar()
+toArray()
}
XoopsObject <|-- XoopsUser
XoopsObject <|-- XoopsGroup
XoopsObject <|-- XoopsModule
XoopsObject <|-- XoopsBlock
XoopsObject <|-- XoopsComment
XoopsObject <|-- XoopsNotification
mermaid
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
mermaid
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();
พิมพ์อนุสัญญาตัวอย่าง
ชั้นเรียนPascalCaseXoopsUser, CriteriaCompo
วิธีการอูฐกรณีgetVar(), setVar()
คุณสมบัติCamelCase (ป้องกัน)$_vars, $_handler
ค่าคงที่UPPER_SNAKE_CASEXOBJ_DTYPE_INT
ตารางฐานข้อมูลงู_กรณีusers, groups_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 ที่มีอยู่เมื่อเข้าสู่ระบบ

เมื่อเปิดใช้งาน 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แสดงรายการโมดูล
  • คู่มือการพัฒนาโมดูล
  • คู่มือการพัฒนาธีม
  • การกำหนดค่าระบบ
  • แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย
เวอร์ชั่นการเปลี่ยนแปลง
2.5.11รุ่นเสถียรปัจจุบัน
2.5.10เพิ่มการสนับสนุน GraphQL API
2.5.9ระบบเกณฑ์ขั้นสูง
2.5.8PSR-4 รองรับการโหลดอัตโนมัติ

เอกสารนี้เป็นส่วนหนึ่งของฐานความรู้ XOOPS สำหรับการอัปเดตล่าสุด โปรดไปที่ XOOPS พื้นที่เก็บข้อมูล GitHub