web-dev-qa-db-fra.com

Est-il possible de changer l'ordre de feu d'un plugin système sans ordre de changement dans le backend?

J'ai un petit problème avec l'un des plugins système tiers qui se déclenche avant mon plugin système. Nous utilisons tous les deux onAfterRoute mais si ce plugin est commandé avant le mien, mon remplacement n’a pas lieu. Je sais que je peux changer l'ordre de mon plugin dans le backend et éviter ainsi le problème.

Ce que je n’aime pas, c’est que j’aurais besoin de faire quelque chose comme cela dans le plugin install.script.php pour être sûr que mon plugin se déclenche toujours en premier

$q->set(array('enabled = 1','ordering = -1000'));

http://prntscr.com/3totid

Oui, c'est un bidule laid et un autre problème est que l'administrateur peut toujours changer l'ordre.

La question est donc: est-il possible de faire cela à partir du plugin système lui-même? Quelque chose dans JDispatcher peut-être commander d'abord mon plugin?

Toute aide est appréciée!

3
Dan

Le seul moyen que je puisse imaginer est si vous avez un deuxième plug-in système qui le fait lors d'un événement antérieur comme onAfterInitialise. Vous devrez probablement le changer directement dans la base de données.

Cependant, à mon humble avis, vous ne devriez pas le faire du tout. Il appartient à l'administrateur système de décider dans quel ordre les plugins doivent être activés. Si votre plugin doit être le premier, dites à l’administrateur qu’elle devrait vérifier cela.

3
Bakual