Re,

J'ai commité par erreur 2-3 modifications que je prototypais,
concernant la gestion des dépendances entre plugins.

J'aimerais discuter des différents comportements, et modifications
visuelles que ça apporte.

Coté dev, il suffira de compléter le _define.php du plugin, avec par exemple :
$this->registerModule(
        /* Name */                      "Antispam",
        /* Description*/                "Generic antispam plugin for Dotclear",
        /* Author */                    "Alain Vagner",
        /* Version */                   '1.3.1',
        array(
                'permissions' =>        'usage,contentadmin',
                'priority' =>           10,
                'depends' => array(
                        'comments' => '1.0')
        )
);

L'attribut 'depends' est alors un tableau des dépendances, chaque clef
du tableau étant une dépendance avec un plugin donné.
Pour la valeur associée à la clef :
* soit on met une valeur min (ex: 1.0) : dépendance avec comments v1.0 minimum
* soit on met un intervalle (ex : array('1.0','2.0')) : dépendance
avec comments v1.0 minimum, v2.0 maximum
* Soit on met rien (''), auquel cas on vérifie juste que comments est présent.

Maintenant, comme la vérification des dépendances est potentiellement
chronophage, je propose de restreindre la vérification à certains
endroits :
* A l'accueil de l'admin : on vérifie les problèmes de dépendance, et
on désactive les plugins ayant des problèmes de dépendances.
* Dans la gestion des extensions :
  * vérification de toutes les dépendances à l'accueil de la page extensions
  * vérification des dépendances à l'installation d'un plugin : si les
dépendances ne sont pas concordantes, le plugin est installé, mais
désactivé.
  * un plugin dont dépendent d'autres plugins actifs n'est ni
désactivable, ni supprimable (on affiche un message du pourquoi)
  * un plugin n'ayant pas ses dépendances résolues n'est pas
activable, mais est supprimable.

Z'en dites ?

--
Bruno
_______________________________________________
Dev mailing list
[email protected]
http://ml.dotclear.org/listinfo/dev

Répondre à