Bonjour,
Nous utilisons GLPI en interne chez mon nouvel employeur, et je suis en
train de regarder le code pour voir si je pourrais contribuer certaines
ameliorations. Notez que je ne connais pas grand chose a PHP (plus a
l'aise en Perl/Javascript/Haskell).
== A. Questions sur le style du code ==
1. Dans index.php par exemple:
// Start the page echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN" '.
'"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n";
Pourquoi ne pas simplement fermer le tag php? Je croyais que PHP etait
fait pour ca.
2. Repetitions dans html.class.php:
$menu['admin']['content']['rule']['options']['transfer']['title']=
__('Transfer');
$menu['admin']['content']['rule']['options']['transfer']['page'] =
"/front/transfer.php";
$menu['admin']['content']['rule']['options']['transfer']['links']['search']
=
"/front/transfer.php";
N'est-il pas possible en PHP de faire quelquechose comme:
$transfer = $menu['admin']['content']['rule']['options']['transfer'];
$transfer['title'] = __('Transfer');
$transfer['page'] = "/front/transfer.php";
$transfer['links']['search'] = "/front/transfer.php";
Ca limite les repetitions, et evite de depasser systematiquement 80
colonnes.
3. Toujours dans html.class.php, ne serait-il pas possible de faire en
sorte que le code specifique a chaque module soit defini dans la classe
du module, plutot que d'avoir une classe "Header" de 2000 lignes?
== B. git ==
Avez-vous envisage de passer a git? Ca rendrait les contributions
nettement plus faciles. En l'occurence pour mon projet j'ai fait un
checkout avec git-svn, mais ca serait quand meme plus pratique si tout
etait deja sur github.com
== C. Design UI ==
La j'ai un certain nombres de critiques, mais ne les prenez pas mal,
je trouve que QLPI ne se debrouille pas trop mal pour un logiciel de
ce type par rapport a la moyenne. Je me base sur la version 0.80.x,
il se peut que certaines choses aient change.
- Pagination des listes. Les choix 5. 10 et 20 servent-ils
a quelquechose? Imagine-t-on un use case ou un utilisateur
pourrait vouloir 5 elements par page, voire meme 10 plutot que
20? Pourquoi ne pas carrement prendre une valeur tres grande
par defaut, de facon a decharger la mise en page d'un element.
- Les selections par liste deroulante (<FORM><SELECT...>) sont
problematiques d'un point de vue de l'experience utilisateur,
principalement parcequ'elles cachent initialement l'information
a l'utilisateur. Il doit cliquer pour savoir ce qu'il peut
choisir. C'est un peu frustrant, et c'est a eviter parcequ'il
y a souvent des alternatives possibles:
+ Quand il n'y a pas de choix possibles, il ne faudrait pas
laisser croire a l'utilisateur que c'est le cas (verifie
dans GLPI, il y a des cas avec des listes deroulantes avec
un seul element); soit transformer en texte, soit griser.
+ Quand le choix est binaire, une case a cocher a la meme
fonctionnalite, et peut s'y substituer dans certains cas
(mais pas tous)
+ Quand il y a une poignee de choix (2 a 5), un bloc de
boutons radio est pratiquement toujours preferable.
- La mise en page ne fait pas un tres bon usage de la typographie,
par ex. tous les textes sont pratiquement a la meme taille.
- Usage un peu trop intensif des filets, en particulier dans
les tables, meme si la plupart sont en reserve. Pour separer les
lignes dans une table, on peut par exemple simplement laisser 20%
d'espace entre deux lignes.
- Redondance de la navigation et pour beaucoup de widget
- Elements graphiques de taille fixe, exemple champs de texte
dans les formulaires.
- Les quelques icones sont franchement ambigus (cf "voir
le contenu de la corbeille"). C'est d'autant plus genant que
certains ont une fonction importante.
- Il faudrait differencier autant que possible ceux qui ont un
effet de bord de ceux qui ne sont que de la navigation (cf a
nouveau voir la corbeille, on pourrait penser a priori qu'il
signifie _mettre_ a la poubelle).
- Menu deroulant "Page courante en PDF paysage" -> cf remarque
precedente sur les listbox deroulantes; mais en plus ici on a un
effet de bord alors que ca a le look d'un element de formulaire
(aspect identique a "Afficher xxx elements" a sa gauche). Pour une
fois, meme si je n'aime pas trop les barres d'icones, on gagnerait
a utiliser ce format, d'autant plus qu'une feuille orientee d'une
facon ou d'une autre est plus parlante que "paysage" ou portrait.
Quoi qu'il en soit, glpi est un projet tres utile, et j'espere avoir la
possibilite de contribuer a l'avenir.
_______________________________________________
Glpi-dev mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-dev