it-swarm-vi.com

Có thể thay đổi thứ tự lửa plugin hệ thống mà không thay đổi thứ tự trong phụ trợ không?

Tôi có một vấn đề nhỏ với một trong các plugin hệ thống của bên thứ 3 kích hoạt trước plugin hệ thống của tôi. Cả hai chúng tôi đều sử dụng onAfterRoute nhưng nếu plugin đó được đặt hàng trước tôi, việc ghi đè của tôi sẽ không diễn ra. Tôi biết rằng tôi có thể thay đổi thứ tự plugin của mình trong phần phụ trợ và cách này tránh được vấn đề.

Điều tôi không thích là tôi sẽ cần phải làm một cái gì đó như thế này trong plugin install.script.php để đảm bảo plugin của tôi luôn chạy trước

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

http://prntscr.com/3totid

Vâng, đó là một hack xấu xí và một vấn đề khác là quản trị viên vẫn có thể thay đổi thứ tự.

Vì vậy, câu hỏi là, có thể làm điều này từ chính plugin hệ thống? Một cái gì đó trong JDispatcher có thể đặt hàng plugin của tôi trước?

Bất kỳ trợ giúp được đánh giá cao!

3
Dan

Cách duy nhất tôi có thể tưởng tượng là nếu bạn có một plugin hệ thống thứ hai thực hiện điều đó trong một sự kiện trước đó như onAfterInitialise. Bạn có thể sẽ phải thay đổi nó trong cơ sở dữ liệu trực tiếp sau đó.

Tuy nhiên, imho, bạn không nên làm điều đó cả. Tùy thuộc vào quản trị hệ thống để quyết định các plugin sẽ kích hoạt theo thứ tự nào. Nếu plugin của bạn cần là đầu tiên, hãy nói với quản trị viên rằng cô ấy nên kiểm tra xem.

3
Bakual