web-dev-qa-db-ja.com

バックエンドの変更順序なしでシステムプラグインの起動順序を変更することは可能ですか?

システムプラグインの前に起動するサードパーティのシステムプラグインの1つに小さな問題があります。どちらもonAfterRouteを使用していますが、そのプラグインが私の前に注文された場合、私のオーバーライドは行われていません。バックエンドでプラグインの順序を変更できるので、この方法で問題を回避できます。

私が嫌いなことは、プラグインが常に最初に起動することを確認するために、プラグインinstall.script.phpでこのようなことをする必要があるということです

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

http://prntscr.com/3totid

はい、それは醜いハックであり、別の問題は管理者がまだ注文を変更できることです。

だから問題は、システムプラグイン自体からこれを行うことは可能ですか? JDispatcherに何か私のプラグインを最初に注文しますか?

どんな助けでもありがたいです!

3
Dan

私が想像できる唯一の方法は、onAfterInitialiseのような以前のイベントでそれを行う2番目のシステムプラグインがある場合です。その場合は、データベースで直接変更する必要があります。

どんなに私は、あなたはそれをまったくすべきではありません。プラグインを起動する順序を決定するのはシステム管理者次第です。プラグインを最初にする必要がある場合は、管理者に確認するように伝えます。

3
Bakual