Aller au contenu

Référence API XOOPS

Bienvenue dans la documentation complète de la Référence API d’XOOPS. Cette section fournit une documentation détaillée pour tous les classes principales, méthodes et systèmes qui composent le système de gestion de contenu XOOPS.

L’API XOOPS est organisée en plusieurs sous-systèmes majeurs, chacun responsable d’un aspect spécifique de la fonctionnalité du CMS. Comprendre ces APIs est essentiel pour développer des modules, des thèmes et des extensions pour XOOPS.

Les classes fondamentales sur lesquelles tous les autres composants d’XOOPS sont construits.

DocumentationDescription
XoopsObjectClasse de base pour tous les objets de données dans XOOPS
XoopsObjectHandlerModèle gestionnaire pour les opérations CRUD

Utilitaires d’abstraction base de données et de construction de requêtes.

DocumentationDescription
XoopsDatabaseCouche d’abstraction base de données
Système CriteriaCritères de requête et conditions
QueryBuilderConstruction de requêtes fluide moderne

Génération et validation de formulaires HTML.

DocumentationDescription
XoopsFormConteneur et rendu de formulaires
Éléments de formulairesTous les types d’éléments de formulaires disponibles

Composants système et services principaux.

DocumentationDescription
Classes noyauSystème noyau et composants principaux

Gestion et cycle de vie des modules.

DocumentationDescription
Système de modulesChargement, installation et gestion des modules

Intégration Smarty.

DocumentationDescription
Système de modèlesIntégration et gestion des modèles Smarty

Gestion des utilisateurs et authentification.

DocumentationDescription
Système d’utilisateursComptes utilisateurs, groupes et permissions
flowchart TB
subgraph "Couche Fondation"
XO[XoopsObject<br/>Classe de base]
XD[XoopsDatabase<br/>Abstraction BD]
XF[XoopsForm<br/>Génération formulaires]
end
subgraph "Couche Gestionnaire"
XOH[XoopsObjectHandler<br/>Opérations CRUD]
CR[Criteria<br/>Construction requêtes]
XFE[XoopsFormElement<br/>Types d'entrée]
end
subgraph "Couche Module"
XM[XoopsModule<br/>Gestion modules]
end
subgraph "Couche Présentation"
XT[XoopsTpl<br/>Moteur modèles]
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

L’API XOOPS implémente plusieurs modèles de conception bien connus :

Utilisé pour les services globaux comme les connexions base de données et les instances de conteneurs.

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

Les gestionnaires d’objets créent des objets de domaine de manière cohérente.

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

Les formulaires contiennent plusieurs éléments de formulaires; les critères peuvent contenir des critères imbriqués.

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

Le système d’événements permet un couplage faible entre les modules.

$dispatcher->addListener('module.news.article_published', $callback);
// Obtenir le gestionnaire
$handler = xoops_getHandler('user');
// Créer un nouvel objet
$user = $handler->create();
$user->setVar('uname', 'newuser');
$user->setVar('email', 'user@example.com');
// Enregistrer dans la base de données
$handler->insert($user);
// Construire les critères
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('level', 0, '>'));
$criteria->setSort('uname');
$criteria->setOrder('ASC');
$criteria->setLimit(10);
// Obtenir les objets
$handler = xoops_getHandler('user');
$users = $handler->getObjects($criteria);
$form = new XoopsThemeForm('Profil utilisateur', 'userform', 'save.php', 'post', true);
$form->addElement(new XoopsFormText('Nom d\'utilisateur', '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();
TypeConventionExemple
ClassesPascalCaseXoopsUser, CriteriaCompo
MéthodescamelCasegetVar(), setVar()
PropriétéscamelCase (protégé)$_vars, $_handler
ConstantesUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Tables base de donnéessnake_caseusers, groups_users_link

XOOPS définit les types de données standard pour les variables d’objets :

ConstanteTypeDescription
XOBJ_DTYPE_TXTBOXStringEntrée texte (nettoyée)
XOBJ_DTYPE_TXTAREAStringContenu textarea
XOBJ_DTYPE_INTIntegerValeurs numériques
XOBJ_DTYPE_URLStringValidation URL
XOBJ_DTYPE_EMAILStringValidation email
XOBJ_DTYPE_ARRAYArrayTableaux sérialisés
XOBJ_DTYPE_OTHERMixedTraitement personnalisé
XOBJ_DTYPE_SOURCEStringCode source (nettoyage minimal)
XOBJ_DTYPE_STIMEIntegerHorodatage court
XOBJ_DTYPE_MTIMEIntegerHorodatage moyen
XOBJ_DTYPE_LTIMEIntegerHorodatage long

L’API supporte plusieurs méthodes d’authentification :

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

Utilise la session XOOPS existante quand l’utilisateur est connecté.

Quand l’API REST est activée :

Point d’entréeMéthodeDescription
/api.php/rest/usersGETLister les utilisateurs
/api.php/rest/users/{id}GETObtenir l’utilisateur par ID
/api.php/rest/usersPOSTCréer un utilisateur
/api.php/rest/users/{id}PUTMettre à jour l’utilisateur
/api.php/rest/users/{id}DELETESupprimer l’utilisateur
/api.php/rest/modulesGETLister les modules
  • Guide de développement de modules
  • Guide de développement de thèmes
  • Configuration système
  • Meilleures pratiques de sécurité
VersionChangements
2.5.11Dernière version stable
2.5.10Ajout du support API GraphQL
2.5.9Système Criteria amélioré
2.5.8Support autoloading PSR-4

Cette documentation fait partie de la base de connaissances XOOPS. Pour les dernières mises à jour, visitez le dépôt XOOPS GitHub.