wiki:fr/drafts/preferences
developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Version 3 (modified by laurentj, 14 years ago) (diff)

--

préférences systèmes

Jelix va comporter des préférences. Concretement, il s'agit d'une table contenant des couples de nom/valeurs. Et une API jPref::get('clé') et jPref::set('clé','valeur') permet de les lire ou les modifier.

Ici on parle de préférences systèmes, à l'opposé de préférences utilisateurs. Preferenses systèmes étant des préférences communes à tout user.

stockage

Ce qui est prévue dans la table jlx_prefs

  • clé. formaté comme ceci de préférence : nom_module.foo.bar par exemple
  • valeur : la valeur (chaine)
  • type : type de la valeur stockée (boolean, chaine, nombre)
  • locale : clé de locale pour le libellé (pour l'admin)
  • id groupe de valeurs
  • r_acl_sujet et r_acl_droit : droit requis pour visualiser la pref dans l'admin
  • w_acl_sujet et w_acl_droit : droit requis pour modifier la pref dans l'admin

Sachant que droits peuvent être nulls -> modifiables par tout le monde dans l'admin.

Une autre table jlx_prefs_values_group, contient les valeurs et leurs groupes (clé primaire : id groupe + valeur)

  • id groupe
  • valeur
  • ordre ordre d'affichage
  • locale libellé de la valeur (peut être null)

préférences utilisateur

Préférences que les utilisateurs peuvent modifier et donc dont les valeurs sont liées à un login.

À reflechir si on fait cela. La récupération d'une valeur peut être lourde...

table jlx_pref_user ?

  • login
  • clé
  • valeur

sachant que la valeur qu'il y a dans jlx_prefs est la valeur par défaut. Il faudrait alors peut etre ajouter dans jlx_prefs un champs booleen "modifiable" (indiquant si la pref peut etre personnalisée par le user)

Ce qui est aussi possible de faire pour améliorer les performances : avoir un champs pref dans la table des users, qui contient toutes les valeurs de prefs sous forme de tableau php serialisé. Ce champs est invalidé (vidé) à chaque modification dans la table, et regénéré à la connection suivante du user.