Loading...
 

Trackers with Mirror Tables

Introduced in Tiki 1.9.1 No more maintained in 2.0. Pending to be translated to English...

1. Explications


Le rôle de cette bibliothèque est de pouvoir manipuler les données des formulaires avec des instructions SQL simples en dehors de ))TikiWiki((. Donc sans passer par la bibliothèque des trackers et sans avoir à  en comprendre le fonctionnement.

Actuellement, les données des champs des formulaires se trouvent dans une seule table qui associe l'id d'un champ, l'id d'un formulaire et la valeur du champ. Cette table n'est pas aisément exploitable hors de ))TikiWiki((.

Voila à  quoi ressemble la table remplie :
table : tiki_tracker_item_fields

Copy to clipboard
+-------+---------+-----------------+ |itemId | fieldId | value | +-------+---------+-----------------+ | 42 | 7 | a kind of magic | +-------+---------+-----------------+ | 42 | 5 | 1986 | +-------+---------+-----------------+ | 42 | 8 | artist08 | +-------+---------+-----------------+ | 42 | 11 | rock | +-------+---------+-----------------+ | 42 | 17 | 0 | +-------+---------+-----------------+ | 43 | 7 | mon bel album | +-------+---------+-----------------+ | 43 | 5 | 2005 | +-------+---------+-----------------+ | 43 | 8 | artist08 | +-------+---------+-----------------+ | 43 | 11 | rock | +-------+---------+-----------------+ | 43 | 17 | NULL | +-------+---------+-----------------+


Les formulaires avec tables en mirroir utilisent des tables de la forme suivante :

table : tiki_trk_n

Copy to clipboard
+--------+---------+---------+---------+...+---------+ | itemId | field_1 | field_2 | field_3 |...| field_n | +--------+---------+---------+---------+...+---------+


On peut également utiliser des tables avec les nom des champs en clair si on respecte les conventions suivantes :

  • Les noms doivent être valide en SQL
  • Le nom du tracker doit être unique
  • Le nom d'un champ doit être unique pour un tracker donné


Les tables ressemblent alors à  ça :

table : tiki_trk_nom_tracker

Copy to clipboard
+--------+------------+------------+------------+...+------------+ | itemId | nom_champ1 | nom_champ2 | nom_champ3 |...| nom_champn | +--------+------------+------------+------------+...+------------+


Par exemple, voila à  quoi ressemble la table pour un formulaire créé avec des noms en clair :

Copy to clipboard
mysql> select * from tiki_trk_album; +--------+-----------------+------+----------+-------+--------+ | itemId | name | year | artist | genre | Rating | +--------+-----------------+------+----------+-------+--------+ | 42 | a kind of magic | 1986 | artist08 | rock | 0 | | 43 | mon bel album | 2005 | artist08 | rock | NULL | +--------+-----------------+------+----------+-------+--------+

Comparé à  l'exemple d'en haut, c'est beaucoup plus facilement exploitable hors de ))TikiWiki((.

2. Mise en oeuvre


Pour utiliser les formulaires avec tables en mirroir, il faut d'abord activer leur utilisation. Sur la page d'admin, cliquer sur l'icone "Formulaires". Parmis les options disponibles, celle-çi nous intéresse :

Image


On ne peut actuellement pas mélanger les deux types de trackers car il faudrait convertir les tables.

Pour utiliser les noms en clair dans les tables, il faut cocher l'option suivante quand on créé un formulaire :

Image

3. Améliorations


Pour être pleinement utiles, les formulaires fonctionnant de la sorte devrait pouvoir utiliser des tables provenant d'autes bases que celle de ))TikiWiki(( , probablement avec les DSN. De plus, il serait bien de pouvoir les utiliser conjointement avec les formulaires classiques.

List Slides