رفتن به محتوا

مرجع XOOPS API

به مستندات مرجع جامع XOOPS API خوش آمدید. این بخش مستندات دقیقی را برای تمام کلاس‌های اصلی، روش‌ها و سیستم‌هایی که سیستم مدیریت محتوای XOOPS را تشکیل می‌دهند، ارائه می‌کند.

XOOPS API در چندین زیرسیستم اصلی سازماندهی شده است که هر کدام مسئول جنبه خاصی از عملکرد CMS هستند. درک این API ها برای توسعه ماژول ها، تم ها و برنامه های افزودنی برای XOOPS ضروری است.

کلاس های پایه ای که تمام اجزای دیگر XOOPS بر آن ساخته شده اند.

مستنداتتوضیحات
XoopsObjectکلاس پایه برای تمام اشیاء داده در XOOPS
XoopsObjectHandlerالگوی هندلر برای عملیات CRUD

ابزارهای انتزاعی پایگاه داده و ساخت پرس و جو.

مستنداتتوضیحات
XoopsDatabaseلایه انتزاعی پایگاه داده
سیستم معیارمعیارها و شرایط استعلام
QueryBuilderساختمان پرس و جوی روان مدرن

تولید فرم HTML و اعتبار سنجی

مستنداتتوضیحات
XoopsFormظرف فرم و رندر
عناصر فرمهمه انواع عناصر فرم موجود

اجزای اصلی سیستم و خدمات.

مستنداتتوضیحات
کلاس های هستههسته سیستم و اجزای اصلی

مدیریت ماژول و چرخه عمر.

مستنداتتوضیحات
سیستم ماژولبارگذاری، نصب و مدیریت ماژول

ادغام قالب هوشمند.

مستنداتتوضیحات
سیستم قالبادغام هوشمند و مدیریت قالب

مدیریت کاربر و احراز هویت

مستنداتتوضیحات
سیستم کاربرحساب های کاربری، گروه ها و مجوزها
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();
نوعکنوانسیونمثال
کلاس هاPascalCaseXoopsUser, CriteriaCompo
روش هاشتر موردgetVar(), setVar()
خواصCamelCase (محافظت شده)$_vars, $_handler
ثابت هاUPPER_SNAKE_CASEXOBJ_DTYPE_INT
جداول پایگاه دادهمار_موردusers, 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}دریافتدریافت کاربر با شناسه
/api.php/rest/usersپستایجاد کاربر
/api.php/rest/users/{id}قرار دادنبه روز رسانی کاربر
/api.php/rest/users/{id}حذفحذف کاربر
/api.php/rest/modulesدریافتلیست ماژول ها
  • راهنمای توسعه ماژول
  • راهنمای توسعه تم
  • پیکربندی سیستم
  • بهترین شیوه های امنیتی
نسخهتغییرات
2.5.11انتشار پایدار فعلی
2.5.10اضافه شدن پشتیبانی GraphQL API
2.5.9سیستم معیارهای پیشرفته
2.5.8پشتیبانی از بارگیری خودکار PSR-4

این مستند بخشی از پایگاه دانش XOOPS است. برای آخرین به‌روزرسانی‌ها، از مخزن XOOPS GitHub دیدن کنید.