コンテンツにスキップ

XOOPS APIリファレンス

XOOPS APIリファレンスドキュメントへようこそ。このセクションでは、XOOPS Content Management Systemを構成するすべてのコアクラス、メソッド、システムの詳細なドキュメンテーションを提供します。

XOOPS APIは、CMSの機能の特定の側面を担当する複数の主要なサブシステムに構成されています。これらのAPIを理解することは、XOOPS用のモジュール、テーマ、拡張機能を開発するために不可欠です。

他のすべてのXOOPSコンポーネントが構築される基礎クラス。

ドキュメンテーション説明
XoopsObjectXOOPS内のすべてのデータオブジェクトの基本クラス
XoopsObjectHandlerCRUD操作用のハンドラーパターン

データベース抽象化およびクエリ構築ユーティリティ。

ドキュメンテーション説明
XoopsDatabaseデータベース抽象化レイヤー
Criteriaシステムクエリ条件と条件
QueryBuilder最新のフルエントクエリ構築

HTMLフォーム生成と検証。

ドキュメンテーション説明
XoopsFormフォームコンテナとレンダリング
フォーム要素利用可能なすべてのフォーム要素タイプ

コアシステムコンポーネントとサービス。

ドキュメンテーション説明
カーネルクラスシステムカーネルとコアコンポーネント

モジュール管理とライフサイクル。

ドキュメンテーション説明
モジュールシステムモジュールの読み込み、インストール、管理

Smartyテンプレート統合。

ドキュメンテーション説明
テンプレートシステムSmarty統合とテンプレート管理

ユーザー管理と認証。

ドキュメンテーション説明
ユーザーシステムユーザーアカウント、グループ、権限
flowchart TB
subgraph "基盤レイヤー"
XO[XoopsObject<br/>基本クラス]
XD[XoopsDatabase<br/>DB抽象化]
XF[XoopsForm<br/>フォーム生成]
end
subgraph "ハンドラーレイヤー"
XOH[XoopsObjectHandler<br/>CRUD操作]
CR[Criteria<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 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);
// ハンドラーを取得
$handler = xoops_getHandler('user');
// 新しいオブジェクトを作成
$user = $handler->create();
$user->setVar('uname', 'newuser');
$user->setVar('email', 'user@example.com');
// データベースに保存
$handler->insert($user);
// 条件を構築
$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('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
データベーステーブルsnake_caseusers, groups_users_link

XOOPSはオブジェクト変数の標準データ型を定義します:

定数説明
XOBJ_DTYPE_TXTBOXStringテキスト入力 (サニタイズ)
XOBJ_DTYPE_TXTAREAStringテキスエリアコンテンツ
XOBJ_DTYPE_INTInteger数値
XOBJ_DTYPE_URLStringURL検証
XOBJ_DTYPE_EMAILStringメール検証
XOBJ_DTYPE_ARRAYArrayシリアル化配列
XOBJ_DTYPE_OTHERMixedカスタム処理
XOBJ_DTYPE_SOURCEStringソースコード (最小限のサニタイズ)
XOBJ_DTYPE_STIMEInteger短いタイムスタンプ
XOBJ_DTYPE_MTIMEInteger中程度タイムスタンプ
XOBJ_DTYPE_LTIMEInteger長いタイムスタンプ

APIは複数の認証方法をサポートしています:

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

ログインしているときに既存のXOOPSセッションを使用します。

REST APIが有効な場合:

エンドポイントメソッド説明
/api.php/rest/usersGETユーザーの一覧
/api.php/rest/users/{id}GETIDでユーザーを取得
/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.10GraphQL APIサポートを追加
2.5.9Criteriaシステムを強化
2.5.8PSR-4オートローディングサポート

このドキュメンテーションはXOOPS知識ベースの一部です。最新の更新については、XOOPS GitHubリポジトリにアクセスしてください。