Jeu de piste

On — moi parfois, d’autres plus souvent — a souvent pesté quand il faut retrouver où se cachent les réglages des plugins qu’on vient juste d’installer, ou qu’on a pas utilisé assez souvent pour avoir mémorisé l’endroit où ça se passe.

Et ça perdure depuis pas mal d’années, surtout avec des installations qui combinent pas mal de plugins.

JCDenis, en développant ses plugins, puis la gestion intégrée des modules dans Dotclear à l’époque, avait inclus la possibilité d’avoir un lien direct vers la configuration d’iceux, quand un fichier _config.php était présent. Ce lien était (et est toujours d’ailleurs) visible dans la liste affichée sur la page de gestion des plugins.

Excellente idée, mais pas applicable partout, surtout pour des plugins qui ne font qu’ajouter une petite option ici, par exemple sur la page des paramètres du blog, ou là, par exemple sur la page des préférences utilisateur.

Du coup je viens de coder quelque chose de plus souple (sans d’ailleurs remettre en question ce qu’avait fait JCDenis) et qui permet de définir les autres endroits où des réglages peuvent être faits.

Dans le détail ça donne cela :

Définitions

Il faut définir dans le fichier _define.php du plugin une propriété supplémentaire, nommée settings et qui se construit de la façon suivante :

…
'settings' => array(
	'self'	=> '',
	'blog'	=> '#params.id',
	'pref'	=> '#user-options.id'
)

La ligne avec ‘self’ permet d’indiquer qu’il y a des réglages sur la page principale du plugin (c’est-à-dire pour les développeurs, dans le fichier index.php).

La ligne avec ‘blog’ permet d’indiquer qu’il y a des réglages dans les paramètres du blog, normalement sur l’onglet « Paramètres » (le #params sert à ça) et que le premier élément concernant le plugin a un identifiant égal à id (on peut par exemple positionner cet id sur l’élément de titre, h4 ou h5, qui précède les options du plugin).

La ligne avec ‘pref’ permet d’indiquer qu’il y a des réglages dans les préférences utilisateur, normalement sur l’onglet « Mes options » (le #user-options sert à ça) et que le premier élément concernant le plugin a un identifiant égal à id.

Vous pouvez, et même devez, ne préciser que les lignes qui sont pertinentes (voir les exemples ci-dessous).

Il n’est pas obligatoire de préciser l’id, dans ce cas il suffit de préciser simplement l’onglet. Il n’est pas non plus obligatoire de préciser l’onglet, dans ce cas laisser simplement une chaine vide (”).

Les liens seront affichés dans l’ordre où ils sont définis dans la propriété ‘settings’.

Nota : À cette liste de lien sera ajoutée en premier, s’il existe, le lien vers le fichier _config.php du plugin.

Affichage

Liste des liens de réglages d'un plugin

L’affichage des URLs de réglage se font à deux endroits :

  1. Sur la page de gestion des plugins, en dépliant les infos supplémentaires (il suffit de cliquer sur le nom du plugin pour les obtenir)
  2. Sur chacune des pages principales des plugins, à condition d’avoir les droits pour y accéder aux différents réglages, sachant que ce qui est définit pour ‘self’ ne sera pas affiché (a priori on y est déjà).

Liste des liens de réglages d'un plugin

Exemples de définition

Plugin Antispam

'settings' => array(
	'self' => '',
	'blog' => '#params.antispam_params'
)
  • self → accès aux réglages principaux du plugin sur sa propre page (index.php)
  • blog → accès aux réglages secondaires dans les paramètres du blog

Plugin Mot-clés

'settings' => array(
	'pref' => '#user-options.tags_prefs'
)
  • pref → accès au réglage du format de liste des mot-clés dans les préférences utilisateur

Plugin Maintenance

'settings' => array(
	'self' => '#settings'
)
  • self → accès à l’onglet “Réglages” de la propre page du plugin (index.php)

Conclusion

Ça sera donc dans la prochaine version 2.11 de Dotclear \o/

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/12981

Haut de page