API Addon - OVML : Différence entre versions
(→Introduction) |
(→Fonctionnement) |
||
| Ligne 24 : | Ligne 24 : | ||
== Fonctionnement == | == Fonctionnement == | ||
| − | Pour gérer de nouvelles fonctions OVML dans notre module, il faut ajouter un fichier ovml.php dans le répertoire | + | Pour gérer de nouvelles fonctions OVML dans notre module, il faut ajouter un fichier ovml.php dans le répertoire du module contenant les fichiers PHP (dossier Programs dans le fichier zip ou $babInstallPath/addons/add-on prefix). |
Le fichier ovml.php doit contenir la fonction : | Le fichier ovml.php doit contenir la fonction : | ||
| Ligne 41 : | Ligne 41 : | ||
} | } | ||
| − | 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 | + | 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 enregistrements 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. | Remarque : si aucun résultat, il faut renvoyer un tableau vide. | ||
| + | |||
Exemple de renvoi du tableau : | Exemple de renvoi du tableau : | ||
$tab = array(); | $tab = array(); | ||
Version du 4 janvier 2007 à 10:34
Introduction
Il est indispensable 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 administrateurs de personnaliser leurs pages d'accueil ou autres fichiers. L'avantage du langage est qu'il s'intègre facilement dans un code html et que son code reste compatible avec les nouvelles versions d'Ovidentia. Les données récupérées sont généralement présentes dans la base de données, la syntaxe du langage évite des accès directs aux enregistrements. Dans le cadre d'un module, il est parfois nécessaire de créer de nouvelles fonctions OVML si les fonctions existantes du noyau ne sont pas suffisantes.
Syntaxe d'utilisation des containers OvML 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 le container OCAddon, 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> dans cet exemple).
Fonctionnement
Pour gérer de nouvelles fonctions OVML dans notre module, il faut ajouter un fichier ovml.php dans le répertoire du module contenant 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 enregistrements 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;