Tablix permet l'utilisation de modules chargeables qui incluent des fonctions d'ajustage depuis la version 0.0.4.
L'interface des modules d'ajustage a considérablement changée avec la réécriture du noyau, en créant la branche 0.2.x.
Il existe deux types distincts de modules : les modules d'ajustage qui contiennent des fonctions d'ajustage partiel et fournissent des gestionnaires (prises en charge, "handlers") pour des restrictions variées.
Ils sont chargés par le noyau comme spécifié dans le fichier de configuration XML. Les fonctions d'ajustage sont ensuite utilisées par l'algorithme génétique pour sélectionner les meilleurs emplois du temps parmi une large population.
Les modules d'exportation, d'autre part, sont chargés par l'utilitaire tablix2_output et contient des fonctions qui traduisent les données de la structure interne du noyau vers un certain format. Par exemple, les modules d'exportation HTML et CSV (Comma Separated Values -Valeurs séparées par des virgules-).
Ce document décrit les modules d'ajustage. Beaucoup de choses décrites s'appliquent également aux modules d'exportation. Ces derniers sont détaillés dans la seconde partie de cet HOW-TO.
Je vous recommande de lire le Manuel de l'utilisateur Tablix et le modèle formel de description des emplois du temps avant de tenter d'écrire votre propre module.
Aussi, je vous conseille de garder une fenêtre de votre navigateur ouverte sur le manuel de référence des API du noyau sous les yeux, pendant que vous lisez ce texte. Des structures importantes sont aussi décrites ici, mais la plupart du temps, seules des références au manuel API seront données.
Note: Tous les exemples de fichiers de configuration XML et de code source de module peuvent être trouvés dans le sous-répertoire examples/modules/ de l'arbre des sources Tablix.