Je suis en train de reprendre le dev de ce ticket
Je sépare donc en 3 sous fonctions (comme le propose Remi) :
$sql = constructsql(...)
$data = constructdata($sql, ...)
displaydata($data, ...)
A la sortie de constructdata, j'ai un tableau de ce genre :
Array
(
[cols] => Array
(
[0] => Array
(
[name] => Nom
[link]
=> ?itemtype=Computer&sort=1&order=DESC&start=0 [search_ID] => 1
[datatype] => itemlink
[itemtype] => Computer
)
[1] => Array
(
[name] => Entité
[link]
=> ?itemtype=Computer&sort=80&order=DESC&start=0
[search_ID] => 80 [datatype] => dropdown
[itemtype] => Computer
)
[2] => Array
(
[name] => Statut
[link]
=> ?itemtype=Computer&sort=31&order=DESC&start=0
[search_ID] => 31 [datatype] => dropdown
[itemtype] => Computer
)
[3] => Array
(
[name] => Fabricant
[link]
=> ?itemtype=Computer&sort=23&order=DESC&start=0
[search_ID] => 23 [datatype] => dropdown
[itemtype] => Computer
)
[4] => Array
(
[name] => Numéro de série
[link]
=> ?itemtype=Computer&sort=5&order=DESC&start=0 [search_ID]
=> 5 [datatype] => string
[itemtype] => Computer
)
[5] => Array
(
[name] => Type
[link]
=> ?itemtype=Computer&sort=4&order=DESC&start=0 [search_ID]
=> 4 [datatype] => dropdown
[itemtype] => Computer
)
[6] => Array
(
[name] => Modèle
[link]
=> ?itemtype=Computer&sort=40&order=DESC&start=0
[search_ID] => 40 [datatype] => dropdown
[itemtype] => Computer
)
[7] => Array
(
[name] => Système d'exploitation
[link]
=> ?itemtype=Computer&sort=45&order=DESC&start=0
[search_ID] => 45 [datatype] => dropdown
[itemtype] => Computer
)
[8] => Array
(
[name] => Lieu
[link]
=> ?itemtype=Computer&sort=3&order=DESC&start=0 [search_ID]
=> 3 [datatype] => dropdown
[itemtype] => Computer
)
[9] => Array
(
[name] => Dernière modification
[link]
=> ?itemtype=Computer&sort=19&order=DESC&start=0
[search_ID] => 19 [datatype] => datetime
[itemtype] => Computer
)
[10] => Array
(
[name] => Usager
[link]
=> ?itemtype=Computer&sort=17&order=DESC&start=0
[search_ID] => 17 [datatype] => string
[itemtype] => Computer
)
[11] => Array
(
[name] => FusInv - Last inventory
[link]
=> ?itemtype=Computer&sort=5150&order=DESC&start=0
[search_ID] => 5150 [datatype] => datetime
[itemtype] => Computer
)
[12] => Array
(
[name] => IP
[link]
=> ?itemtype=Computer&sort=20&order=DESC&start=0
[search_ID] => 20 [datatype] =>
[itemtype] => Computer
)
)
[rows] => Array
(
[0] => Array
(
[currentuser] => glpi
[ITEM_0] => orditest-5290ed
[ITEM_0_2] => 36
[ITEM_1] => Entité racine
[ITEM_2] =>
[ITEM_3] => innotek GmbH
[ITEM_4] =>
[ITEM_5] =>
[ITEM_6] => VirtualBox
[ITEM_7] => Microsoft Windows XP Professionnel
[ITEM_8] =>
[ITEM_9] => 2012-10-10 21:49:29
[ITEM_10] => ddurieux@ORDITEST-5290ED
[ITEM_11] =>
[ITEM_12] =>
[id] => 36
)
[1] => Array
(
[currentuser] => glpi
[ITEM_0] => port004
[ITEM_0_2] => 34
[ITEM_1] => Entité racine
[ITEM_2] =>
[ITEM_3] => TOSHIBA
[ITEM_4] => XA201220H
[ITEM_5] => Notebook
[ITEM_6] => Satellite R630
[ITEM_7] => freebsd
[ITEM_8] =>
[ITEM_9] => 2012-10-10 06:37:00
[ITEM_10] => ddurieux
[ITEM_11] =>
[ITEM_12] =>
10.0.0.1$$106$$$$fe80::1$$103$$$$127.0.0.1$$104 [id] => 34
)
[2] => Array
(
[currentuser] => glpi
[ITEM_0] => test
[ITEM_0_2] => 1
[ITEM_1] => Entité racine
[ITEM_2] =>
[ITEM_3] =>
[ITEM_4] =>
[ITEM_5] =>
[ITEM_6] =>
[ITEM_7] =>
[ITEM_8] =>
[ITEM_9] => 2012-09-30 19:25:34
[ITEM_10] =>
[ITEM_11] =>
[ITEM_12] =>
[id] => 1
)
Est-ce que la sortie des data vous parait bien comme ça?
Si on valide ça je peux bosser sur l'affichage ;)
David
++
Le Sun, 01 Apr 2012 09:54:08 +0200
Remi Collet <[email protected]> a écrit:
>Le 01/04/2012 08:13, MoYo a écrit :
>> Le 01/04/2012 00:00, David DURIEUX a écrit :
>>>> par exemple.
>>>> Après la grande question sur le sujet c'est est-ce que le retour du
>>>> $result SQL est satisfaisant.
>>>> Sur le ticket, il est indiqué une fonction qui renvoie un tableau
>>>> des données et une autre qui affiche les données.
>>> Je me disait que renvoyer le $result serait plus simple que de
>>> renvoyer un gros tableau (traitement pour renvoyer un array() au
>>> lieu de renvoyer le $result et faire un foreach derrière).
>>>
>>> Dis moi ce qui te semble le mieux : tableau de donnée ou $result.
>>
>> Je ne me base que sur le ticket est c'est un tableau qui est
>> spécifier. Après ca mérite surement discussion sur le format et
>> l'organisation de celui-ci.
>
>L'idée c'est que le "result" permet de récupérer des données, mais qui
>seront particulièrement difficile à traiter (nom des colonnes
>générées).
>
>Si on veut un truc utilisable et générique, clairement le $result n'est
>pas satisfaisant.
>
>Effectivement
>
>1/ on pourrait imaginer un split en 3
>
> $sql = constructsql(...)
> $data = constructdata($sql, ...)
> displaydata($data, ...)
>
>2/ il faut spécifier le contenu du tableau
>
>première idée :
>
> [cols]
> name => description
> ...
> [rows]
> [0]
> name => value
> ...
> [1]
> ...
>
>Avec
> name => nom dans le résultat (SQL)
> description => libellé de la colonne
> value => ben... value quoi
>
>Mais c'est probablement insuffisant
>- le datatype ? (nécessaire pour l'affichage)
>- le mode d'affichage (text, html, nécessaire par exemple quand on a un
>lien vers un objet)
>- etc (j'en oublie forcément)
>
>à discuter donc.
>
>++
>
>_______________________________________________
>Glpi-dev mailing list
>[email protected]
>https://mail.gna.org/listinfo/glpi-dev
_______________________________________________
Glpi-dev mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-dev