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érarchiemod
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']
où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éeparam[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).