דלגו לתוכן

XOOPS API הפניה

ברוכים הבאים לתיעוד העזר המקיף XOOPS API. סעיף זה מספק תיעוד מפורט עבור כל מחלקות הליבה, השיטות והמערכות המרכיבות את XOOPS מערכת ניהול התוכן.

XOOPS API מאורגנת במספר תת-מערכות עיקריות, שכל אחת אחראית להיבט ספציפי של הפונקציונליות CMS. הבנת APIs אלה חיונית לפיתוח מודולים, ערכות נושא והרחבות עבור XOOPS.

מחלקות הבסיס שכל שאר הרכיבים XOOPS בונים עליהם.

תיעודתיאור
XoopsObjectמחלקה בסיס לכל אובייקטי הנתונים ב-XOOPS
XoopsObjectHandlerדפוס מטפל לפעולות CRUD

כלי עזר להפשטת מסדי נתונים ובניית שאילתות.

תיעודתיאור
XoopsDatabaseשכבת הפשטת מסד נתונים
מערכת קריטריוניםקריטריונים ותנאים של שאילתה
QueryBuilderבניין שאילתות שוטף מודרני

HTML יצירת טופס ואימות.

תיעודתיאור
XoopsFormמיכל טופס ועיבוד
רכיבי טופסכל סוגי רכיבי הטופס הזמינים

רכיבי מערכת ושירותי ליבה.

תיעודתיאור
חוגי ליבהליבת מערכת ורכיבי ליבה

ניהול מודול ומחזור חיים.

תיעודתיאור
מערכת מודולטעינת מודול, התקנה וניהול

Smarty שילוב תבנית.

תיעודתיאור
מערכת תבניותSmarty אינטגרציה וניהול תבניות

ניהול ואימות משתמשים.

תיעודתיאור
מערכת משתמשחשבונות משתמש, קבוצות והרשאות

סקירה כללית של אדריכלות

Section titled “סקירה כללית של אדריכלות”
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);

יצירה ושמירה של אובייקט

Section titled “יצירה ושמירה של אובייקט”
// 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
שיטותcamelCasegetVar(), 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קבל משתמש לפי זיהוי
/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.