Catégorie:Développement de modules
Sommaire
Introduction
Un module d'Ovidentia est une archive qui peut être distribuée et qui améliore ou ajoute des fonctionnalités du portail. Les méthodes de développement utilisées pour les modules sont les mêmes que celles utilisées pour le noyau. De ce fait, les modules utilisent les fonctions disponibles dans le noyau (moteur de templates, gestion des droits ...) et publiées en tant qu'API. Les fonctions ne faisant pas partie des API documentées ne doivent en aucun cas être utilisées. Elles peuvent évoluer dans l'avenir ou changer de comportement.
Les templates d'Ovidentia représentent l'outil qui permet de séparer le code PHP du code HTML ; la gestion des skins d'ovidentia est basée sur ce principe. Les modules sont généralement développés en utilisant cette technologie.
Ce document est un guide qui fourni au développeur toutes les étapes nécessaires à la construction d'un module basique. Le lecteur doit être familiarisé au préalable avec les notions de développement PHP, HTML et CSS.
Structure du module
Pour créer un module, il faut créer les répertoires nécessaires dans l'arborescence d'Ovidentia en utilisant un nom unique pour le module. Pour connaître la disposition des répertoires autorisés dans un module, consultez la page Structure des répertoires d'un module
Dans le répertoire contenant les fichiers php (programs), il existe des fichiers avec des noms imposés :
Gestion de la base de données
Le lien avec le serveur de base de données MySQL se fait au travers d'un objet php bab_database.Le client mysql de php n'est pas utilisé directement. Cet objet propose quelques fonctions supplémentaires décrites dans la documentation ci-dessous :
Les fonctions d'Ovidentia
Les fonctions disponibles pour les modules se trouvent dans les fichiers utilit/addonapi.php( Consulter API noyau/module ). Les fonctions des autres fichiers, qui ne sont pas spécifiées dans ce wiki comme disponibles pour les modules, ne doivent pas être utilisées. Elles sont sujettes à modification ou suppression dans les futures versions d'Ovidentia.
Les variables globales
Lors du développement dans le contexte d'un module, certaines variables globales peuvent êtres utilisées.
Templates
Le moteur de template permet de séparer les données de la présentation. Il utilise un objet PHP pour injecter les données dans un fichier HTML dit "template".
- Exemple d'utilisation de la fonction bab_printTemplate()
- Syntaxe des templates
- Nouveau moteur de templates
Droits d'accès
Les modules peuvent utiliser l'API ACL (Access Control List) pour gérer les droits d'accès. Elle permet d'assigner des droits et de vérifier l'accès à un élément en fonction des groupes d'utilisateurs du portail.
- Voir la documentation : Access Control List
Utiliser des fonctions avancées d'Ovidentia
Le gestionnaire d'événements
Le gestionnaire d'événements est un outil qui permet de s'enregistrer lors de l'installation du module afin d'être notifié de l'exécution de certaines actions ou à l'inverse, prévenir d'autres modules.
- API du gestionnaire d'événement
- Communication entre les modules (Technologie à l'étude)
Proposer un service OVML
Permet à un module de fournir des services OVML. Ces services sont implémentés sous forme de containers utilisables pour personnaliser les pages d'accueil avec des données gérées par le module ( dernières publications, dernières mises à jour, etc ... )
Envoyer des e-mails
Pour envoyer des emails de notification en utilisant la configuration du portail, il faut inclure le fichier de la fonction email d'Ovidentia avec cette syntaxe :
include_once $babInstallPath."utilit/mailincl.php";
Ensuite, la fonction bab_mail() permet d'obtenir une instance de l'objet nécessaire à l'envoi des e-mails.
Voir la documentation complète : API d'envoi de mails
Sous-catégories
Cette catégorie comprend 2 sous-catégories, dont les 2 ci-dessous.
Pages dans la catégorie « Développement de modules »
Cette catégorie contient 32 pages, dont les 32 ci-dessous.
A
- Addon tutorial
- API Addon - OVML
- API Articles
- API d'envoi de mails
- API de la recherche
- API de sélection d'utilisateurs
- API des ACL (Access Control List)
- API des dates
- API des fonctionnalités
- API des groupes
- API des tags
- API des utilisateurs et des annuaires
- API du gestionnaire d'événement
- API editeur
- API javascript bab dialog
- API noyau/module