From b645703eb9a46bb41d626eb0bb80ae7d3cdad378 Mon Sep 17 00:00:00 2001 From: Sander van Dragt Date: Tue, 29 Jan 2013 15:30:35 +0000 Subject: [PATCH] Sort menu items according to priority descending, then title ascending --- admin/code/CMSMenu.php | 11 +++++------ admin/code/ModelAdmin.php | 7 +++++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/admin/code/CMSMenu.php b/admin/code/CMSMenu.php index 54cb7337c..e515affd6 100644 --- a/admin/code/CMSMenu.php +++ b/admin/code/CMSMenu.php @@ -150,15 +150,14 @@ class CMSMenu extends Object implements IteratorAggregate, i18nEntityProvider } } - // Sort menu items according to priority + // Sort menu items according to priority, then title asc $menuPriority = array(); - $i = 0; + $menuTitle = array(); foreach($menuItems as $key => $menuItem) { - $i++; - // This funny litle formula ensures that the first item added with the same priority will be left-most. - $menuPriority[$key] = $menuItem->priority*100 - $i; + $menuPriority[$key] = $menuItem->priority; + $menuTitle[$key] = $menuItem->title; } - array_multisort($menuPriority, SORT_DESC, $menuItems); + array_multisort($menuPriority, SORT_DESC, $menuTitle, SORT_ASC, $menuItems); return $menuItems; } diff --git a/admin/code/ModelAdmin.php b/admin/code/ModelAdmin.php index a08ab53d0..4bd315e97 100644 --- a/admin/code/ModelAdmin.php +++ b/admin/code/ModelAdmin.php @@ -54,6 +54,13 @@ abstract class ModelAdmin extends LeftAndMain { * @var array|string */ public static $managed_models = null; + + /** + * Override menu_priority so that ModelAdmin CMSMenu objects + * are grouped together directly above the Help menu item. + * @var float + */ + public static $menu_priority = -0.5; public static $allowed_actions = array( 'ImportForm',