Paramètres du plugin

Vous devez effectuer quelques étapes supplémentaires si votre plugin a besoin de paramètres qui doivent être enregistrés et contrôlés via le panneau d’administration :

  • Créez un fichier dans le dossier des vues par défaut de votre plugin appelé plugins/votre_plugin/settings.php, où votre_plugin est le nom du répertoire de votre plugin dans la hiérarchie mod

  • Remplissez ce fichier avec les éléments de formulaire que vous souhaitez afficher avec les traductions des étiquettes de texte</i18n>

  • Définissez l’attribut de nom dans vos composants de formulaire sur param['varname']varname est le nom de la variable. Ceux-ci seront enregistrés en tant que paramètres privés attachés à une entité plugin. Ainsi, si votre variable est appelée param[myparameter], votre plugin (qui est également transmis à cette vue comme $vars['entity'] sera appelé $vars['entity']->myparameter

Un exemple de settings.php ressemblerait à :

<p>
   <?php echo elgg_echo('myplugin:settings:limit'); ?>

   <select name="params[limit]">
      <option value="5" <?php if ($vars['entity']->limit == 5) echo " selected=\"yes\" "; ?>>5</option>
      <option value="8" <?php if ((!$vars['entity']->limit) || ($vars['entity']->limit == 8)) echo " selected=\"yes\" "; ?>>8</option>
      <option value="12" <?php if ($vars['entity']->limit == 12) echo " selected=\"yes\" "; ?>>12</option>
      <option value="15" <?php if ($vars['entity']->limit == 15) echo " selected=\"yes\" "; ?>>15</option>
   </select>
</p>

Note

Vous n’avez pas besoin d’ajouter un bouton d’enregistrement ou le formulaire, cela sera géré par le framework.

Note

Vous ne pouvez pas utiliser des composants de formulaire qui n’envoient aucune valeur lorsqu’ils sont « off ». Il s’agit notamment des entrées radio et des cases à cocher.

Paramètres de l’utilisateur

Votre plugin peut également avoir besoin de stocker des paramètres pour chaque utilisateur, et vous voudrez voir les options de votre plugin apparaître dans la page de paramètres de l’utilisateur. C’est également facile à faire et suit le même modèle que la configuration globale du plugin expliquée plus tôt. La seule différence est qu’au lieu d’utiliser un fichier settings, vous utiliserez usersettings. Ainsi, le chemin d’accès à la vue de modification des paramètres utilisateur de votre plugin serait plugins/votre_plugin/usersettings.php.

Note

Le titre du formulaire des paramètres utilisateur sera par défaut au nom du plugin. Si vous souhaitez modifier cela, ajoutez une traduction pour plugin_id:usersettings:title.

Récupérer des paramètres dans votre code

Pour récupérer les paramètres depuis votre code utilisez :

$setting = elgg_get_plugin_setting($name, $plugin_id);

ou pour les paramètres utilisateur

$user_setting = elgg_get_plugin_user_setting($name, $user_guid, $plugin_id);

où :

  • $name Est la valeur que vous souhaitez récupérer

  • $user_guid Est l’utilisateur pour lequel vous souhaitez récupérer ces valeurs (par défaut l’utilisateur actuellement connecté)

  • $plugin_name Est le nom du plugin (détecté s’il s’exécute à partir d’un plugin)

Définir des valeurs via le code

Les valeurs peuvent également être définies à partir du code de votre plugin, pour cela utilisez l’une des fonctions suivantes :

elgg_set_plugin_setting($name, $value, $plugin_id);

ou

elgg_set_plugin_user_setting($name, $value, $user_guid, $plugin_id);

Avertissement

Le $plugin_id doit être fourni lors de la définition des paramètres du plugin (ou de l’utilisateur).