From e9aae52fb3bc392663ee19aa2a5f702a3ed71fbf Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Thu, 19 Jun 2014 05:10:29 +0200 Subject: make sure the ordering of reports is correct, pass an instance of a report to RenderReport --- core/Menu/MenuAbstract.php | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'core/Menu') diff --git a/core/Menu/MenuAbstract.php b/core/Menu/MenuAbstract.php index cbd5c5a798..69b48f76b1 100644 --- a/core/Menu/MenuAbstract.php +++ b/core/Menu/MenuAbstract.php @@ -291,15 +291,34 @@ abstract class MenuAbstract extends Singleton */ protected function menuCompare($itemOne, $itemTwo) { - if (!is_array($itemOne) || !is_array($itemTwo) - || !isset($itemOne['_order']) || !isset($itemTwo['_order']) - ) { + if (!is_array($itemOne) && !is_array($itemTwo)) { return 0; } + if (!is_array($itemOne) && is_array($itemTwo)) { + return -1; + } + + if (is_array($itemOne) && !is_array($itemTwo)) { + return 1; + } + + if (!isset($itemOne['_order']) && !isset($itemTwo['_order'])) { + return 0; + } + + if (!isset($itemOne['_order']) && isset($itemTwo['_order'])) { + return -1; + } + + if (isset($itemOne['_order']) && !isset($itemTwo['_order'])) { + return 1; + } + if ($itemOne['_order'] == $itemTwo['_order']) { return strcmp($itemOne['_name'], $itemTwo['_name']); } + return ($itemOne['_order'] < $itemTwo['_order']) ? -1 : 1; } } -- cgit v1.2.3