diff options
author | Bharat Mediratta <bharat@menalto.com> | 2010-12-17 22:19:46 -0800 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2010-12-17 22:19:46 -0800 |
commit | dbb9b8b1c8ee5395a65b6329c793e7a2c398ef00 (patch) | |
tree | 7e37f4a2482465d45c351787b8e524a5aef61c71 /modules | |
parent | e60edcdeba577e8cdbdbbc700cb3dfe9d0dd9443 (diff) |
Sort the Admin > Settings menu instead of relying on module activation order.
Requires making Menu::get() return a reference. Fixes #1545.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/gallery/helpers/gallery_event.php | 3 | ||||
-rw-r--r-- | modules/gallery/libraries/Admin_View.php | 4 | ||||
-rw-r--r-- | modules/gallery/libraries/Menu.php | 5 |
3 files changed, 10 insertions, 2 deletions
diff --git a/modules/gallery/helpers/gallery_event.php b/modules/gallery/helpers/gallery_event.php index b59bb9b9..cbb939bb 100644 --- a/modules/gallery/helpers/gallery_event.php +++ b/modules/gallery/helpers/gallery_event.php @@ -371,6 +371,9 @@ class gallery_event_Core { ->id("admin_menu") ->label(t("Admin"))); module::event("admin_menu", $admin_menu, $theme); + + $settings_menu = $admin_menu->get("settings_menu"); + sort($settings_menu->elements); } } } diff --git a/modules/gallery/libraries/Admin_View.php b/modules/gallery/libraries/Admin_View.php index 74ed4fb3..11f8ad14 100644 --- a/modules/gallery/libraries/Admin_View.php +++ b/modules/gallery/libraries/Admin_View.php @@ -44,6 +44,10 @@ class Admin_View_Core extends Gallery_View { public function admin_menu() { $menu = Menu::factory("root"); module::event("admin_menu", $menu, $this); + + $settings_menu = $menu->get("settings_menu"); + sort($settings_menu->elements); + return $menu->render(); } diff --git a/modules/gallery/libraries/Menu.php b/modules/gallery/libraries/Menu.php index 3ad6ebef..58852a72 100644 --- a/modules/gallery/libraries/Menu.php +++ b/modules/gallery/libraries/Menu.php @@ -223,12 +223,13 @@ class Menu_Core extends Menu_Element { /** * Retrieve a Menu_Element by id */ - public function get($id) { + public function &get($id) { if (array_key_exists($id, $this->elements)) { return $this->elements[$id]; } - return null; + $null = null; + return $null; } public function is_empty() { |