Lewati ke konten

XOOPS API Referensi

Selamat datang di dokumentasi Referensi XOOPS API yang komprehensif. Bagian ini memberikan dokumentasi terperinci untuk semua kelas core, metode, dan sistem yang membentuk Sistem Manajemen Konten XOOPS.

XOOPS API disusun menjadi beberapa subsistem utama, masing-masing bertanggung jawab atas aspek spesifik fungsi CMS. Memahami API ini penting untuk mengembangkan module, theme, dan ekstensi untuk XOOPS.

Kelas dasar yang menjadi dasar pembuatan semua komponen XOOPS lainnya.

DokumentasiDeskripsi
XoopsObjekKelas dasar untuk semua objek data di XOOPS
XoopsObjectHandlerPola handler untuk operasi CRUD

Abstraksi basis data dan utilitas pembuatan kueri.

DokumentasiDeskripsi
XoopsDatabaseLapisan abstraksi basis data
Sistem KriteriaKriteria dan ketentuan kueri
Pembuat KueriPembuatan kueri lancar modern

Pembuatan dan validasi formulir HTML.

DokumentasiDeskripsi
XoopsFormBentuk wadah dan rendering
Elemen BentukSemua tipe elemen formulir yang tersedia

Komponen dan layanan sistem core.

DokumentasiDeskripsi
Kelas KernelKernel sistem dan komponen core

Manajemen module dan siklus hidup.

DokumentasiDeskripsi
Sistem modulePemuatan module, instalasi, dan manajemen

Integrasi template Smarty.

DokumentasiDeskripsi
Sistem templateIntegrasi Smarty dan manajemen template

Manajemen pengguna dan otentikasi.

DokumentasiDeskripsi
Sistem PenggunaAkun pengguna, grup, dan izin
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 mengimplementasikan beberapa pola desain terkenal:

Digunakan untuk layanan global seperti koneksi database dan instans kontainer.

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

handler objek membuat objek domain secara konsisten.

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

Formulir berisi beberapa elemen formulir; kriteria dapat berisi kriteria bertingkat.

$criteria = new CriteriaCompo();
$criteria->add(new Criteria('status', 1));
$criteria->add(new CriteriaCompo(...)); // Nested

Sistem acara memungkinkan sambungan longgar antar module.

$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();
KetikKonvensiContoh
KelasKasus PascalXoopsUser, CriteriaCompo
MetodeKasus untagetVar(), setVar()
ProperticamelCase (dilindungi)$_vars, $_handler
KonstantaUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Tabel Basis Datakasus_ularusers, groups_users_link

XOOPS mendefinisikan tipe data standar untuk variabel objek:| Konstan | Ketik | Deskripsi | |----------|------|-------------| | XOBJ_DTYPE_TXTBOX | Tali | Input teks (disanitasi) | | XOBJ_DTYPE_TXTAREA | Tali | Konten area teks | | XOBJ_DTYPE_INT | bilangan bulat | Nilai numerik | | XOBJ_DTYPE_URL | Tali | Validasi URL | | XOBJ_DTYPE_EMAIL | Tali | Validasi email | | XOBJ_DTYPE_ARRAY | Himpunan | Array berseri | | XOBJ_DTYPE_OTHER | Campuran | Penanganan khusus | | XOBJ_DTYPE_SOURCE | Tali | Kode sumber (sanitasi minimal) | | XOBJ_DTYPE_STIME | bilangan bulat | Stempel waktu singkat | | XOBJ_DTYPE_MTIME | bilangan bulat | Stempel waktu sedang | | XOBJ_DTYPE_LTIME | bilangan bulat | Stempel waktu yang panjang |

API mendukung beberapa metode otentikasi:

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

Menggunakan sesi XOOPS yang ada saat login.

Saat REST API diaktifkan:

Titik akhirMetodeDeskripsi
/api.php/rest/usersDAPATKANDaftar pengguna
/api.php/rest/users/{id}DAPATKANDapatkan pengguna berdasarkan ID
/api.php/rest/usersPOSTINGBuat pengguna
/api.php/rest/users/{id}TETAPKANPerbarui pengguna
/api.php/rest/users/{id}HAPUSHapus pengguna
/api.php/rest/modulesDAPATKANDaftar module
  • Panduan Pengembangan module
  • Panduan Pengembangan theme
  • Konfigurasi Sistem
  • Praktik Terbaik Keamanan
VersiPerubahan
2.5.11Rilis stabil saat ini
2.5.10Menambahkan dukungan GraphQL API
2.5.9Sistem Kriteria yang Ditingkatkan
2.5.8Dukungan pemuatan otomatis PSR-4

Dokumentasi ini adalah bagian dari Basis Pengetahuan XOOPS. Untuk pembaruan terkini, kunjungi repositori GitHub XOOPS.