Dotclear

Ticket #763 (closed enhancement: fixed)

Opened 15 years ago

Last modified 8 years ago

Le paramétrage des plugins : un jeu de piste ?

Reported by: Moe Owned by: team
Priority: normal Milestone: 2.11
Component: refonte:general Version:
Severity: normal Keywords:
Cc:

Description

Actuellement le paramétrage des plugins peut se faire grâce à une entrée dans le menu Extensions, dans les autres menus (Blog et Système), dans les Paramètres du blog ou dans le Gestionnaire de widgets si c'est un widget ou encore nulle part s'il n'y a pas de paramétrage. Ça fait beaucoup d'endroits ou chercher Faut-il limiter les plugins au menu "Extensions" ?

Change History

comment:1 follow-up: ↓ 2 Changed 15 years ago by JcDenis

Je pense que c'est à chaque programmeur de plugin de mettre un menu la ou il faut, certain n'ont même pas besoin de menu car ils ajoutes juste un case à cocher dans l'administration du blog, etc... Par contre il serait plus interressant d'ajouter un page dans le même style que la page d'accueil ou tous les plugins seraient présents car effectivement tous les plugins ne sont pas forcément dans le menu extension et ce dernier descend six pied sous terre lorsque l'on a 50 plugins installés.

comment:2 in reply to: ↑ 1 ; follow-up: ↓ 3 Changed 15 years ago by pep

Replying to JcDenis: Ce n'est pas ce que fait déjà la page dotclear/admin/plugins.php ?

comment:3 in reply to: ↑ 2 ; follow-up: ↓ 4 Changed 15 years ago by JcDenis

Replying to pep:

Replying to JcDenis: Ce n'est pas ce que fait déjà la page dotclear/admin/plugins.php ?

Sisi c'est exactement ca...
A part qu'il manquerait un lien vers la configuration du plugin. Lien sur son nom par exemple, avec une page standardisée de configuration pour ceux qui en ont.
Pour moi le menu extension est un menu fourre tout ou je met un lien vers un plugin quand il n'a pas sa place spécifique ailleur. Par exemple un widget n'a pas besoin d'être dans le menu extension, ou encore le plugin Tags est bien mieux dans le menu blog que dans le menu extension...
Il faut juste que les programmeurs soient logiques et que si un plugin n'est pas à sa place, la remarque lui soit faites.

comment:4 in reply to: ↑ 3 Changed 15 years ago by Moe

Replying to JcDenis:

Par exemple un widget n'a pas besoin d'être dans le menu extension

Oui et non, certains peuvent avoir besoin de plus de paramètres.

ou encore le plugin Tags est bien mieux dans le menu blog que dans le menu extension...

Selon quel critère ? Pour Tags ça peut se comprendre mais pour d'autres plugins c'est plus subtil, en sachant que le développeur ne voit pas son plugin de la même façon que l'utilisateur final. On en revient au problème de départ : trouver un plugin en cherchant à 3 endroits différents, c'est pas ergonomique.

Il faut juste que les programmeurs soient logiques

Bon courage.

comment:5 Changed 15 years ago by JcDenis

Je comprend très bien que souhaiter des programmeurs logiques est impossible et que de plus ,comme le dit Moe, un programmeur ne voit pas son extension comme l'utilisateur. Mais je pense que le problème est beaucoup plus profond.
D'ou ces choix d'évolution:
1) Soit on laisse comme ça,
2) Soit on limite les plugins à l'onglet extension (sachant que certains plugins n'ont rien à y mettre, etc)
3) Soit la partie module de Dotclear est à réécrire pour ajouter des pages standards au même titre que _public, _admin, prepend, etc mais plus limité (Dans ce sens et pour déborder du sujet, il manque des procédures standard de désinstallation, de mise à jour, de dépendance, etc...)

La plus simple est la deuxième (même si par exemple pour certains de mes plugins j'ajoute une option pour que l'admin choisisse ou mettre le menu et que je serait triste de l'enlever)

comment:6 Changed 15 years ago by xave

Ca doit être une réflexion de l'équipe Ergonomie. De toutes façons, ces choses là vont changer, c'est sûr, reste à voir dans quel sens.

Mon première vague idée personnelle sur le sujet, c'est déjà que le choix entre les différentes parties du menu de gauche doivent se faire en fonction des droits nécessaires. Et tout ce qui est système n'a pas à être affiché pour les utilisateurs normaux.

comment:7 Changed 14 years ago by xave

  • Type changed from defect to enhancement

comment:8 Changed 14 years ago by philippe

  • Milestone changed from 2.2 to 2.3

comment:9 Changed 14 years ago by kozlika

  • Priority changed from low to normal
  • Version 2.1 deleted
  • Component changed from module:ergo to refonte:general
  • Severity changed from trivial to normal
  • Milestone 2.3 deleted

De façon plus générale, il faudra refaire une passe des maquettes fonctionnelles puis des maquettes graphiques en se demandant comment ça se décline en fonction des permissions...

comment:10 Changed 11 years ago by franck

  • Status changed from new to onhold

comment:11 Changed 11 years ago by franck

  • Milestone set to A definir

comment:12 Changed 11 years ago by franck

  • Milestone changed from A definir to 2.6

comment:13 Changed 11 years ago by lipki

Quand on installe un plugin via le daInstaller par exemple (sans quitter l'admin donc), voilà ce qu'on l'on a :
Avant installation :

  • nom technique
  • version
  • Nom public
  • Description courte
  • lien vers la page Dotaddict

Après :

  • Le plugin a été installé avec succès
  • désactivation générale
  • suppression générale

Et là on est bien perdu.

Certain plugin doivent-être activé pour chaque blog, mais, ça c'est laissé aux choix du développeur.
Les noms des plugins sont parfois traduits dans les menus et ne correspondent pas à ce que l'on a installé.
Aucune page d'aide n'est disponible, t'en-que l'on n'a pas trouvé la page de configuration du plugin, si elle existe.


Tout ça dépend énormément du développeur et c'est normal dans un sens, la liberté qui lui est laissée c'est très bien.
Pour autant, certaines choses devraient être prise en charge par Dotclear.

Dans la page admin/plugins.php pour chaque ligne du tableau :

  • Un bouton supplémentaire "activé pour ce blog". Le même impact que le fichier "_disabled" mais via un setting par blog.
  • Un lien vers la page index.php du blog, sous la description. Si la page index.php existe.
  • Un texte en plus de la description, dédiée explicitement à une aide "premier pas". Refermable pour ne pas prendre trop de place.
  • Une icône à la manière de l'icône Dotclear pour les extensions officiels.

Et pour l'instant en tout cas, on ne change rien au reste, les plugins peuvent se placer où ils veulent dans les menus.

Ce qui importe c'est que l'utilisateur aie rapidement une indication de ce qu'il doit faire après l'installation.

comment:14 Changed 11 years ago by franck

Le plus simple serait d'ajouter les infos idoines dans le _define.php du plugin, en définissant des emplacements clés :

  • None -> aucun réglage
  • Own admin page on (blog/system/plugins) -> ça permet de fournir un lien direct à l'installation ou sur une page d'aiguillage
  • Inside (blog parameters/user preferences)
  • Other

comment:15 Changed 11 years ago by nikrou

Je pense que l'emplacement n'a pas une grande importance. Le plus gênant est de ne pas savoir où le plugin s'est installé. En plus du message comme quoi le plugin s'est bien installé, il faudrait ajouter un texte semi-temporaire (je ne me rappelle plus le nom donné par Franck pour une aide qui apparaît tant que l'utilisateur n'a pas cliqué sur "c'est bon j'ai lu et compris")

Par exemple je verrais bien un message du genre (ex pour plugin tags) :

  • Pour utiliser le plugin tag, allez dans paramètres
  • vous trouver les paramètres du plugin dans > Blog > Tags
  • etc

C'est mal formulé mais je pense que vous voyez l'idée. On peut même faire des vrais liens (avec ancre si besoin) vers la bonne page.

comment:16 Changed 11 years ago by franck

  • Owner set to JcDenis
  • Status changed from onhold to new

comment:17 Changed 10 years ago by Denis Jean-Chirstian <contact@…>

(In [e59137433afb]) Merge branch dcRepo introducing new repository system, full plugins and themes manager revamping, addresses #763 #1456, closes #1458 #1467 #1657 #1661 #1722

comment:18 Changed 10 years ago by franck

  • Milestone changed from 2.6 to 2.7

comment:19 Changed 10 years ago by franck

À prévoir :

dans le _define.php, dans le tableau des properties, après :

		/* Type */			'type' =>			'plugin',

ajout de :

		/* Locations */		'locations' => array(
								'config' => false,			// true/false
								'index' => false,			// true/false
								'user' => 'options',		// profile, options, dashboard
								'blog' => '',				// params, users
								'misc' => ''
			)

config : présence d'un _config.php appelé via la gestion des plugins

index : présence d'un index.php autonome (à mettre à false pour les plugins de configuration de thème)

user : indique le ou les onglets où le plugin ajoute des réglages sur les préférences utilisateur

blog : idem pour les paramètres du blog, onglet (params ou users)

misc : texte libre pour compléter

Puis lister ces infos, si possible avec les liens idoines, sur la page des plugins, dans la liste des plugins actifs (dans la partie qui se déplie sous chaque plugin)

comment:20 Changed 10 years ago by franck

pour la propriété 'index', on pourrait éventuellement imaginer de préciser dans quel(s) menu(s) le plugin s'installe, "blog", "system", "extensions"

comment:21 Changed 10 years ago by franck

  • Milestone changed from 2.7 to 2.8

comment:22 Changed 9 years ago by franck

  • Owner changed from JcDenis to team

comment:23 Changed 9 years ago by franck

  • Milestone changed from 2.8 to 2.10

comment:24 Changed 8 years ago by franck

  • Milestone 2.10 deleted

comment:25 Changed 8 years ago by franck

  • Milestone set to 2.11

comment:26 Changed 8 years ago by franck

On a un peu avancé sur le sujet, a minima concernant les réglages des plugins, avec cette révision [3333]

comment:27 Changed 8 years ago by franck

  • Status changed from new to closed
  • Resolution set to fixed

Et je pense qu'avec la révision [3335] on aura un peu fait le tour de ce qu'on peut raisonnablement faire pour ce ticket.

comment:28 Changed 8 years ago by Gvx

Une petite remarque concernant le fichier _config.php.

Sauf erreur de ma part, jusqu’à présent on ne pouvait accéder au fichier _config.php que depuis la gestion des plugins.

Pour accéder a la gestion des plugins, il fallait être super administrateur. Et par voie de conséquence au fichier _config.php.

Hors maintenant il est possible d'avoir le lien vers _config.php dans la page principale du plugin, et donc avec des droits d’accès inférieur au super administrateur.

Cela ne risque-t-il pas de poser quelques problèmes?

comment:29 Changed 8 years ago by franck

Difficile à dire parce qu'il n'y a pas de règle générale (je viens de vérifier, ça dépend des plugins), mais tu as raison, je vais m'appuyer sur les permissions définies pour le plugin pour contrôler (pis aller mais je ne vois pas trop comment faire mieux).

comment:30 Changed 8 years ago by franck <carnet.franck.paul@…>

(In [f6d429260c65]) Complete permissions controls for settings URLs, addresses #763

comment:31 Changed 8 years ago by franck <carnet.franck.paul@…>

(In [d3682d096360]) Nicer tests, addresses #763

comment:32 follow-up: ↓ 33 Changed 8 years ago by Gvx

Dans le cas ou la page _config.php n'est pas standalone_config le début et la fin du formulaire sont créée par la fonction displayConfiguration de la class adminModulesList (fichier /inc/admin/lib.moduleslist.php)

Hors le bouton retour renvoi a la page gestion des plugins. Il serait plus logique de revenir a la page appelante (soit celle du plugin).

Pour cela il suffirait d'ajouter en paramètre dans le lien redir.

Le href devrait devenir:

$redir = $core->adminurl->get('admin.plugin.'.$id);
$st[] = '<a class="module-config" href="'. 
        $core->adminurl->get('admin.plugins',array('module' => $id,'conf' => '1','redir' => $redir)). 
        '">'.__('Configure plugin').'</a>';

Ce code est inspiré du plugin pacKman de JcDenis?

Last edited 8 years ago by Gvx (previous) (diff)

comment:33 in reply to: ↑ 32 Changed 8 years ago by franck

Replying to Gvx:

Dans le cas ou la page _config.php n'est pas standalone_config le début et la fin du formulaire sont créée par la fonction displayConfiguration de la class adminModulesList (fichier /inc/admin/lib.moduleslist.php)

Hors le bouton retour renvoi a la page gestion des plugins. Il serait plus logique de revenir a la page appelante (soit celle du plugin).

Pour cela il suffirait d'ajouter en paramètre dans le lien redir.

Le href devrait devenir:

$redir = $core->adminurl->get('admin.plugin.'.$id);
$st[] = '<a class="module-config" href="'. 
        $core->adminurl->get('admin.plugins',array('module' => $id,'conf' => '1','redir' => $redir)). 
        '">'.__('Configure plugin').'</a>';

Ce code est inspiré du plugin pacKman de JcDenis?

Ah oui effectivement, j'avais noté ça dans pacKman et zoneclearFeedServer du même JCDenis.

comment:34 Changed 8 years ago by franck

Voilà, c'est commité ( → [3338])

comment:35 follow-up: ↓ 37 Changed 8 years ago by Gvx

Toujours a propos du fichier _config.php

La page /admin/plugins.php limite l’accès a la permission admin.

En conséquence le lien correspondant au fichier _config.php ne devrait être affiché que si les permissions de l'utilisateur sont au minimum admin

comment:36 follow-up: ↓ 38 Changed 8 years ago by Gvx

Je me pose une autre question.

Quel est l’intérêt de self?

  • Il n'est pas afficher dans la page du plugin.
  • Dans la page de gestion des plugins, il y a déjà le lien Gérer le plugin qui pointe sur la page du plugin.

Je répond a ma question. Je viens de comprendre dans le cas de gestion d'onglets sur la page du plugin ;-)

Last edited 8 years ago by Gvx (previous) (diff)

comment:37 in reply to: ↑ 35 ; follow-up: ↓ 39 Changed 8 years ago by franck

Replying to Gvx:

Toujours a propos du fichier _config.php

La page /admin/plugins.php limite l’accès a la permission admin.

En conséquence le lien correspondant au fichier _config.php ne devrait être affiché que si les permissions de l'utilisateur sont au minimum admin

Pas tout à fait, c'est ce que je mentionnais dans un de mes commentaires ci-dessus (#29), ça dépend des plugins. Du coup j'ai implémenté en fonction des permissions définies dans le _define.php du plugin.

Il y a par ailleurs deux endroits où les liens de config sont affichés, sur la page plugins.php et sur chaque page principale de ceux-ci (index.php)

comment:38 in reply to: ↑ 36 Changed 8 years ago by franck

Replying to Gvx:

Je me pose une autre question.

Quel est l’intérêt de self?

  • Il n'est pas afficher dans la page du plugin.
  • Dans la page de gestion des plugins, il y a déjà le lien Gérer le plugin qui pointe sur la page du plugin

self pointe vers les réglages, qui peut être un onglet particulier de la page du plugin.

Gérer le plugin permet d'accéder à sa page principale, mais il n'est plus question de réglage, seulement de gestion.

Il pourrait y avoir des cas où les deux liens pointent au même endroit, en effet, mais pas toujours. Exemple : le pluglin Maintenance qui possède un onglet de réglage sur sa page principale.

comment:39 in reply to: ↑ 37 Changed 8 years ago by Gvx

Replying to franck:

Replying to Gvx:

Toujours a propos du fichier _config.php

La page /admin/plugins.php limite l’accès a la permission admin.

En conséquence le lien correspondant au fichier _config.php ne devrait être affiché que si les permissions de l'utilisateur sont au minimum admin

Pas tout à fait, c'est ce que je mentionnais dans un de mes commentaires ci-dessus (#29), ça dépend des plugins. Du coup j'ai implémenté en fonction des permissions définies dans le _define.php du plugin.

Il y a par ailleurs deux endroits où les liens de config sont affichés, sur la page plugins.php et sur chaque page principale de ceux-ci (index.php)

Je suis d'accord avec toi.

  • La page plugins.php n'est accessible qu'au super admin
  • la page principale (index.php) est accessible aux droits définis pour l’utilisation du plugin.

si on clique sur le lien correspondant au fichier _config.php en n'ayant pas les droits admin ou super admin on est dirigé sur la page d'authentification ce qui peux être déroutant.

C'est pourquoi je suggérai de ne pas afficher le lien dans le cas ou l'utilisateur n'est pas admin ou super admin

ce comportement est du a la page /admin/plugins.php sur lequel pointe le lien Configurer le plugin

require dirname(__FILE__).'/../inc/admin/prepend.php';

dcPage::check('admin');

comment:40 Changed 8 years ago by franck

Sauf qu'on peut tout à fait proposer un fichier _config.php dans son plugin et qu'il soit accessible directement (bas de page du plugin), y compris pour les utilisateurs non admin.

Donc arrivé à ce point, ça va devenir compliqué.

Quoi qu'il en soit, je pense qu'il n'est pas utile d'aller beaucoup plus loin à ce sujet, peu de plugins possèdent un _config.php. Je propose de laisser en l'état et de voir si ça coince chez certains…

Note: See TracTickets for help on using tickets.

Sites map