API Addon - OVML
Introduction
Il est important de connaître le langage OVML pour comprendre la suite de ce chapitre (Voir la documentation OVML).
Le langage OVML apparaît dans Ovidentia afin de permettre aux utilisateurs de récupérer des données qui se retrouveront par la suite dans des fichiers HTML. Ces données sont généralement présentes dans la base de données. Dans le cadre d'un module, il est parfois nécessaire de créer de nouvelles fonctions OVML si l'interface ne permet pas tout. Par exemple, dans le cas d'un gestionnaire de fichiers, des fonctions OVML permettent de créer soi-même son interface html de visualisation.
On remarque dans la documentation générale de l'OVML, cette syntaxe d'utilisation dans le cadre des modules :
<OCAddon name="" param1="" param1="" ...> <OVvar1> <OVvar2> </OCAddon>
name : nom de l'add-on où se trouve la fonction (préfixe de l'add-on) param1 : premier paramètre d'envoi au module, généralement le nom de la fonction à utiliser param2 : deuxième paramètre d'envoi au module, généralement le premier paramètre de la fonction ovml du module …
Explication : Lorsqu'on va utiliser cette syntaxe, le moteur ovml d'Ovidentia va envoyer au module plusieurs données ainsi que les paramètres du container <OCAddon>. De son côté, le module renvoit les valeurs correspondantes aux variables de la fonction utilisée (<OVvar1> et <OVvar2>).
Fonctionnement
Pour gérer de nouvelles fonctions OVML dans notre module, il faut ajouter un fichier ovml.php dans le répertoire avec les fichiers PHP (dossier Programs dans le fichier zip ou $babInstallPath/addons/add-on prefix).
Le fichier ovml.php doit contenir la fonction :
function addon-name_ovml($args) {} où addon-name est le préfixe du nom de l'add-on et $args est un tableau associatif qui contiendra les noms des paramètres envoyés ainsi que leurs valeurs
Le fonctionnement de cette fonction est laissé au programmeur. Exemple de récupération des paramètres : if (isset($args['param1'])) { switch($args['param1']){ case '1': ... case '2': ... } }
Une chose importante est de toujours renvoyer un tableau indexé comprenant des tableaux associatifs contenant les noms des variables (sans le préfixe OV) et leurs valeurs. Le tableau renverra plusieurs lignes donc plusieurs tableaux des mêmes variables dans le cas où plusieurs résultats sont retournés. Le container ovml <OCAddon> fera autant de boucles qu'il y a d'index dans le tableau.
Remarque : si aucun résultat, il faut renvoyer un tableau vide. Exemple de renvoi du tableau : $tab = array(); $feed['var1'] = "value var1"; $tab[0] = $feed; return $tab;