Loading...
 
Skip to main content

History: Mirror Trackers

Source of version: 7 (current)

Copy to clipboard
            ^__Note:__ This feature is abandonware^

dev:((dev:Mirror Trackers))


!! Trackers with Mirror Tables
^''~~Red: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''
{CODE()}
+-------+---------+-----------------+
|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 |
+-------+---------+-----------------+
{CODE}

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

table : ''tiki_trk_n''
{CODE()}
+--------+---------+---------+---------+...+---------+
| itemId | field_1 | field_2 | field_3 |...| field_n |
+--------+---------+---------+---------+...+---------+
{CODE}

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''
{CODE()}
+--------+------------+------------+------------+...+------------+
| itemId | nom_champ1 | nom_champ2 | nom_champ3 |...| nom_champn |
+--------+------------+------------+------------+...+------------+
{CODE}

Par exemple, voila à  quoi ressemble la table pour un formulaire créé avec des noms en clair :
{CODE()}
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 |
+--------+-----------------+------+----------+-------+--------+
{CODE}
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 :

{img align="center" src="http://fr.tiki.org/img/wiki_up/fr.tiki.org/admin_trackers.png"}

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 :

{img align="center" src="http://fr.tiki.org/img/wiki_up/fr.tiki.org/trackers_names_in_clear.png"}

!!!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.