تخطَّ إلى المحتوى

مرجع واجهة برمجة تطبيقات XOOPS

مرحباً بك في وثائق مرجع واجهة برمجة تطبيقات XOOPS الشاملة. يوفر هذا القسم توثيقاً مفصلاً لجميع الفئات الأساسية والدوال والأنظمة التي تشكل نظام إدارة المحتوى XOOPS.

تم تنظيم واجهة برمجة تطبيقات XOOPS في عدة أنظمة فرعية رئيسية، كل منها مسؤول عن جانب معين من وظائف نظام إدارة المحتوى. فهم هذه واجهات برمجة التطبيقات أمر ضروري لتطوير الوحدات والمظاهر والإضافات لـ XOOPS.

أقسام واجهة برمجة التطبيقات

Section titled “أقسام واجهة برمجة التطبيقات”

فئات الأساس التي تبني عليها جميع مكونات XOOPS الأخرى.

التوثيقالوصف
XoopsObjectفئة القاعدة لجميع كائنات البيانات في XOOPS
XoopsObjectHandlerنمط معالج عمليات CRUD

استخراج قاعدة البيانات وأدوات بناء الاستعلامات.

التوثيقالوصف
XoopsDatabaseطبقة الاستخراج من قاعدة البيانات
نظام معايير البحثمعايير الاستعلام والشروط
منشئ الاستعلاماتبناء الاستعلامات بطريقة معبرة حديثة

إنشاء نماذج HTML والتحقق من صحتها.

التوثيقالوصف
XoopsFormحاوية النموذج والعرض
عناصر النموذججميع أنواع عناصر النموذج المتاحة

مكونات نظام النواة والخدمات الأساسية.

التوثيقالوصف
فئات نواة النظامنواة النظام والمكونات الأساسية

إدارة الوحدات ودورة حياتها.

التوثيقالوصف
نظام الوحداتتحميل الوحدات والتثبيت والإدارة

تكامل قالب Smarty.

التوثيقالوصف
نظام القوالبتكامل Smarty وإدارة القوالب

إدارة المستخدمين والمصادقة.

التوثيقالوصف
نظام المستخدمينحسابات المستخدمين والمجموعات والأذونات
flowchart TB
subgraph "طبقة الأساس"
XO[XoopsObject<br/>فئة القاعدة]
XD[XoopsDatabase<br/>استخراج قاعدة البيانات]
XF[XoopsForm<br/>إنشاء النموذج]
end
subgraph "طبقة المعالج"
XOH[XoopsObjectHandler<br/>عمليات CRUD]
CR[معايير البحث<br/>بناء الاستعلام]
XFE[XoopsFormElement<br/>أنواع الإدخال]
end
subgraph "طبقة الوحدة"
XM[XoopsModule<br/>إدارة الوحدات]
end
subgraph "طبقة العرض"
XT[XoopsTpl<br/>محرك القوالب]
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 عدة أنماط تصميم معروفة:

يستخدم للخدمات العامة مثل اتصالات قاعدة البيانات وأمثلة الحاويات.

$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(...)); // متداخل

نظام الحدث يسمح بالاقتران الضعيف بين الوحدات.

$dispatcher->addListener('module.news.article_published', $callback);
// الحصول على المعالج
$handler = xoops_getHandler('user');
// إنشاء كائن جديد
$user = $handler->create();
$user->setVar('uname', 'newuser');
$user->setVar('email', 'user@example.com');
// الحفظ إلى قاعدة البيانات
$handler->insert($user);

الاستعلام بمعايير البحث

Section titled “الاستعلام بمعايير البحث”
// بناء المعايير
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('level', 0, '>'));
$criteria->setSort('uname');
$criteria->setOrder('ASC');
$criteria->setLimit(10);
// الحصول على الكائنات
$handler = xoops_getHandler('user');
$users = $handler->getObjects($criteria);
$form = new XoopsThemeForm('ملف تعريف المستخدم', 'userform', 'save.php', 'post', true);
$form->addElement(new XoopsFormText('اسم المستخدم', 'uname', 50, 255, $user->getVar('uname')));
$form->addElement(new XoopsFormTextArea('السيرة الذاتية', 'bio', $user->getVar('bio')));
$form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
echo $form->render();

اتفاقيات واجهة برمجة التطبيقات

Section titled “اتفاقيات واجهة برمجة التطبيقات”
النوعالاتفاقيةمثال
الفئاتPascalCaseXoopsUser, CriteriaCompo
الدوالcamelCasegetVar(), setVar()
الخصائصcamelCase (محمي)$_vars, $_handler
الثوابتUPPER_SNAKE_CASEXOBJ_DTYPE_INT
جداول قاعدة البياناتsnake_caseusers, groups_users_link

تحدد XOOPS أنواع بيانات قياسية لمتغيرات الكائن:

الثابتالنوعالوصف
XOBJ_DTYPE_TXTBOXStringإدخال نص (معقم)
XOBJ_DTYPE_TXTAREAStringمحتوى منطقة النص
XOBJ_DTYPE_INTIntegerالقيم الرقمية
XOBJ_DTYPE_URLStringالتحقق من عنوان URL
XOBJ_DTYPE_EMAILStringالتحقق من البريد الإلكتروني
XOBJ_DTYPE_ARRAYArrayمصفوفات متسلسلة
XOBJ_DTYPE_OTHERMixedمعالجة مخصصة
XOBJ_DTYPE_SOURCEStringكود المصدر (تعقيم بسيط)
XOBJ_DTYPE_STIMEIntegerطابع زمني قصير
XOBJ_DTYPE_MTIMEIntegerطابع زمني متوسط
XOBJ_DTYPE_LTIMEIntegerطابع زمني طويل

تدعم واجهة برمجة التطبيقات طرق مصادقة متعددة:

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

مصادقة قائمة على الجلسة

Section titled “مصادقة قائمة على الجلسة”

تستخدم جلسة XOOPS الموجودة عند تسجيل الدخول.

عند تمكين REST API:

نقطة النهايةالطريقةالوصف
/api.php/rest/usersGETعرض قائمة المستخدمين
/api.php/rest/users/{id}GETالحصول على المستخدم بواسطة المعرف
/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.8دعم تحميل تلقائي PSR-4

هذا التوثيق جزء من قاعدة معارف XOOPS. للحصول على أحدث التحديثات، قم بزيارة مستودع XOOPS على GitHub.