İçeriğe geç

XOOPS API Referans

Kapsamlı XOOPS API Referans belgelerine hoş geldiniz. Bu bölüm, XOOPS İçerik Yönetim Sistemini oluşturan tüm temel sınıflar, yöntemler ve sistemler için ayrıntılı belgeler sağlar.

XOOPS API, her biri CMS işlevselliğinin belirli bir yönünden sorumlu olan birkaç ana alt sistem halinde düzenlenmiştir. APIs’yi anlamak, XOOPS’ya yönelik modules, themes ve uzantılar geliştirmek için çok önemlidir.

Diğer tüm XOOPS bileşenlerinin üzerine inşa edildiği temel sınıflar.

DokümantasyonAçıklama
XoopsObjectXOOPS’daki tüm veri nesneleri için temel sınıf
XoopsObjectHandlerCRUD işlemleri için işleyici modeli

database soyutlama ve sorgu oluşturma yardımcı programları.

DokümantasyonAçıklama
XoopsDatabasedatabase soyutlama katmanı
Kriter SistemiSorgu kriterleri ve koşulları
Sorgu OluşturucuModern akıcı sorgu oluşturma

HTML form oluşturma ve doğrulama.

DokümantasyonAçıklama
XoopsFormForm kapsayıcısı ve oluşturma
Form ÖğeleriMevcut tüm form öğesi türleri

Core sistem bileşenleri ve hizmetleri.

DokümantasyonAçıklama
Core SınıflarıSistem çekirdeği ve Core bileşenleri

module yönetimi ve yaşam döngüsü.

DokümantasyonAçıklama
module Sistemimodule yükleme, kurulum ve yönetim

Smarty template entegrasyonu.

DokümantasyonAçıklama
template SistemiSmarty entegrasyon ve template yönetimi

user yönetimi ve kimlik doğrulama.

DokümantasyonAçıklama
user Sistemiuser hesapları, gruplar ve permissions
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 birçok iyi bilinen tasarım modelini uygular:

database bağlantıları ve kapsayıcı bulut sunucuları gibi genel hizmetler için kullanılır.

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

Nesne işleyicileri tutarlı bir şekilde etki alanı nesneleri oluşturur.

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

Formlar birden çok form öğesi içerir; kriterler iç içe geçmiş kriterler içerebilir.

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

Olay sistemi modules arasında gevşek bağlantıya izin verir.

$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();
TürKongreÖrnek
SınıflarPascalCaseXoopsUser, CriteriaCompo
YöntemlerdeveCasegetVar(), setVar()
ÖzelliklercamelCase (korumalı)$_vars, $_handler
SabitlerUPPER_SNAKE_CASEXOBJ_DTYPE_INT
database Tablolarıyılan_durumuusers, groups_users_link

XOOPS nesne değişkenleri için standart veri türlerini tanımlar:

SabitTürAçıklama
XOBJ_DTYPE_TXTBOXDizeMetin girişi (sterilize edilmiş)
XOBJ_DTYPE_TXTAREADizeMetin alanı içeriği
XOBJ_DTYPE_INTTamsayıSayısal değerler
XOBJ_DTYPE_URLDizeURL doğrulama
XOBJ_DTYPE_EMAILDizeE-posta doğrulama
XOBJ_DTYPE_ARRAYDiziSerileştirilmiş diziler
XOBJ_DTYPE_OTHERKarışıkÖzel işleme
XOBJ_DTYPE_SOURCEDizeKaynak kodu (minimum temizlik)
XOBJ_DTYPE_STIMETamsayıKısa zaman damgası
XOBJ_DTYPE_MTIMETamsayıOrta zaman damgası
XOBJ_DTYPE_LTIMETamsayıUzun zaman damgası

API birden fazla kimlik doğrulama yöntemini destekler:

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

Oturum açtığınızda mevcut XOOPS oturumunu kullanır.

REST API etkinleştirildiğinde:

Uç noktaYöntemAçıklama
/api.php/rest/usersGETKullanıcıları listele
/api.php/rest/users/{id}GETKullanıcıyı kimliğe göre al
/api.php/rest/usersPOSTuser oluştur
/api.php/rest/users/{id}PUTKullanıcıyı güncelle
/api.php/rest/users/{id}DELETEKullanıcıyı sil
/api.php/rest/modulesGETModülleri listele
  • module Geliştirme Kılavuzu
  • theme Geliştirme Kılavuzu
  • Sistem Yapılandırması
  • En İyi Güvenlik Uygulamaları
SürümDeğişiklikler
2.5.11Güncel kararlı sürüm
2.5.10GraphQL API desteği eklendi
2.5.9Gelişmiş Kriter sistemi
2.5.8PSR-4 otomatik yükleme desteği

Bu belgeler XOOPS Bilgi Tabanının bir parçasıdır. En son güncellemeler için XOOPS GitHub deposunu ziyaret edin.