Dotclear

Ticket #2041 (closed enhancement: wontfix)

Opened 11 years ago

Last modified 8 years ago

Enable per-blog activation for plugins in core

Reported by: bruno Owned by: team
Priority: normal Milestone:
Component: module:core Version: 2.7.2
Severity: normal Keywords:
Cc:

Description (last modified by bruno) (diff)

Plugins often need to implement their own per-blog activation. When these plugins do not need other parameters, it implies :

  • creating a dedicated admin page
  • adding a meny entry for this page
  • creating a specific setting namespace for the plugin

This feature should be provided by default by the core, and selectable for a plugin as a _define.php parameter.That would drastically reduce the effort for plugin designers.

Change History

comment:1 Changed 11 years ago by bruno

  • Description modified (diff)

comment:2 follow-up: ↓ 3 Changed 11 years ago by franck

Ça pourrait faire l'objet d'un onglet supplémentaire dans les paramètres du blog, vu que c'est déjà de ce côté que certains plugins s'installent lorsqu'ils ont peu de réglages.

comment:3 in reply to: ↑ 2 Changed 11 years ago by bruno

Replying to franck:

Ça pourrait faire l'objet d'un onglet supplémentaire dans les paramètres du blog, vu que c'est déjà de ce côté que certains plugins s'installent lorsqu'ils ont peu de réglages.

Tout à fait. En revanche, il faudrait mentionner aux administrateurs qu'un réglage par blog est activé pour ledit plugin, sinon j'en connais qui vont s'arracher les cheveux à ne pas comprendre pourquoi un plugin est activé globalement, mais ne fonctionne pas.

Je propose d'ajouter, à coté de chaque plugin listé dans admin/plugins.php, un bouton ou lien "gérer l'activation par blog de ce plugin", qui renvoie vers le nouvel onglet dans paramètres du blog. Et potentiellement un avertissement en tête de la page plugins du type : "attention, certains plugins doivent être activés par blog en plus de leur activation globale".

comment:4 follow-up: ↓ 5 Changed 11 years ago by franck

Attention, tous les plugins n'auront pas nécessairement besoin d'une activation sur cet onglet, et d'autres géreront ça sur leur propre page index.php

Il ne faut donc pas généraliser l'accès dans la liste des plugins, surtout que seuls les super-admins ont accès à cette liste !

Donc c'est plutôt en endroit où regrouper les simples activations des plugins qui le souhaiteraient.

Va falloir mettre ça sur papier et y réfléchir un peu, il y a des problèmes de permissions croisées système/blog/user à disséquer avant de coder tout ça…

comment:5 in reply to: ↑ 4 Changed 11 years ago by bruno

Replying to franck:

Attention, tous les plugins n'auront pas nécessairement besoin d'une activation sur cet onglet, et d'autres géreront ça sur leur propre page index.php

Il ne faut donc pas généraliser l'accès dans la liste des plugins, surtout que seuls les super-admins ont accès à cette liste !

Du tout, on ne mentionne le lien que pour les plugins qui ont activé l'option.

Va falloir mettre ça sur papier et y réfléchir un peu, il y a des problèmes de permissions croisées système/blog/user à disséquer avant de coder tout ça…

Je ne comprends pas de quoi tu parles, ça me paraît plutôt simple à mettre en oeuvre justement.

comment:6 follow-up: ↓ 7 Changed 11 years ago by franck

Attention la plage admin/plugins.php n'est accessible qu'aux super-admin, si on met ici un lien vers une endroit où activer le ploug en question, ça ne va pas servir à grand mode, juste à celui qui a installé ça et qui sait a priori ce qu'il fait.

C'est ce que je voulais signaler.

comment:7 in reply to: ↑ 6 Changed 11 years ago by bruno

Replying to franck:

Attention la plage admin/plugins.php n'est accessible qu'aux super-admin, si on met ici un lien vers une endroit où activer le ploug en question, ça ne va pas servir à grand mode, juste à celui qui a installé ça et qui sait a priori ce qu'il fait.

Ça va être nouveau, je préfèrerais qu'on prévienne le super admin (surtout qu'on a beaucoup d'utilisateurs mono-blog). Du genre un warning si un plugin est activé dans plugins.php, qui dit "attention, le plugin est désactivé pour ce blog. Cliquez ici pour gérer son activation pour ce blog". Sinon plein d'admins iront voir leur super-admin pour leur dire que ça marche pas :)

comment:8 Changed 11 years ago by Dsls

(In [d12215a1a1e7]) First shot for per_blog settings for plugins, see #2041

comment:9 Changed 10 years ago by franck

  • Milestone changed from 2.8 to 2.9

comment:10 Changed 10 years ago by franck

  • Milestone changed from 2.9 to 2.10

comment:11 Changed 9 years ago by franck

  • Milestone changed from 2.10 to 2.11

comment:12 Changed 9 years ago by JcDenis

Juste une petite réflexion comme ça, aujourd'hui on peut ajouter des options dans le fichiers _define.php, il suffirait alors d'y ajouter un per_blog_activation pour lancer la machine, ensuite dans les paramètres du blog, ajouter un encart pour lister les plugins aillant cette option. Et pour le super admin, dans plugins.php, ajouter juste un texte disant que ce plugin à cette option.

Z'en pensez ?

D'un autre coté, entre les plugins activable par super admin, ceux activable par un admin, ceux aillant d'autres options, voir des pages de configuration, ça va peut-être devenir compliqué pour un quidam de régler un plugin :/

comment:13 Changed 9 years ago by franck

C'est clair que ça sera une option "per_blog" de plus côté settings du _define.php

Maintenant, je pense qu'il faut ne pas se précipiter (j'ai peut-être mis ça trop vite dans la 2.11) et faire un inventaire des plugins qu'on a à disposition aujourd'hui et voir ce qu'ils utilisent comme réglages et où. Un gros tableau croisé en quelque sorte.

Une fois ça effectué, je pense que ça sera plus clair pour apporter une éventuelle réponse à ce sujet. On en a peut-être pas besoin, qui sait ?

comment:14 Changed 9 years ago by franck

Je rappelle ici, à toute fins utiles, ce qui est attendu pour l'instant côté settings :

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 dans la référence 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

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

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)

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à).

Réf →  https://open-time.net/post/2016/09/01/Jeu-de-piste (avec des images)

Last edited 9 years ago by franck (previous) (diff)

comment:15 Changed 9 years ago by franck

  • Milestone changed from 2.11 to 2.12

comment:16 Changed 8 years ago by franck

  • Milestone changed from 2.12 to A definir

comment:17 Changed 8 years ago by franck

  • Status changed from new to closed
  • Resolution set to wontfix
  • Milestone A definir deleted
Note: See TracTickets for help on using tickets.

Sites map