Module préférences utilisateurs

De Cms Made Simple France
Aller à : navigation, rechercher

Gérer les préférences d'un module

Il est très pratique de laisser dans l'administration d'un module la possibilité aux utilisateurs de personnaliser le fonctionnement.

Que ce soit via une case à cocher ou via un formulaire plus complexe, il existe une solution recommandée pour conserver ces valeurs d'options.

Déclarer ses préférences

On ne déclare pas réellement ses préférences pour un module. On "Set" simplement les valeurs de chaque options avec une valeur par défaut. Cela se fait généralement dans le fichier /modules/MonModule/method.install.php - apidoc

  $this->SetPreference ('monParametre', 'duTexteParDefault');
  $this->SetPreference ('maValeur', 99);

A noter du coup que nous utiliserons dans notre module cette fonction à chaque fois que nous aurons besoin de persister une nouvelle valeur pour ces préférences.

Supprimer ses préférences

A l'inverse, la suppression d'un module doit nettoyer ses préférences. Cela se fait généralement dans le fichier /modules/MonModule/method.uninstall.php - apidoc

  $this->RemovePreference();

Notez cette fois l'absence de nom lors de la suppression, En effet la documentation indique que la non-présence du nom durant la suppression provoque la suppression de TOUTES les préférences du modules. Pratique !

Récupérer ses préférences

Généralement dans votre code vous récupérerez les valeurs des préférences de cette façon - apidoc

  $this->GetPreference('monParametre');

Ce qui retournera potentiellement NULL si aucune valeur n'est associées à monParametre.

  $this->GetPreference('monParametre', 'duTexteParDefault');

Ajouter un second paramètre à la fonction GetPreference permet de donner une valeur par défaut dans le cas ou monParametre n'était pas encore initialisé.


Dans quels cas ne pas utiliser ce mécanisme

Par expérience je conseillerais d'utiliser systématiquement ce mécanisme pour persister une option d'un module. Systématiquement SAUF !

  • Si vous n'avez pas le contrôle sur la longueur de la valeur entrée.
  • Si potentiellement la taille peut dépasser +/- 64 000 caractère (du à une limitation en base)
  • Si vous tentez de sauvegarder des "templates" associés à votre modules. D'autres solutions existent, plus performantes comme l'utilisation de CgExtension.

Et évidement si vous tentez de sauvegarder des données tabulaire qui sont tout sauf des options :)

Déjà finit...

Voilà pour cette partie, vous savez maintenant comment gérer les propriétés dynamiquement dans vos modules

Retourner sur la liste des tutoriaux