From f49e7f3fbdf3173b4dc548eab568c5fae1b773d3 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Thu, 23 May 2013 12:35:06 -0400 Subject: Fixes #5522. Only adding children elements to menu items if they haven't already been added. --- engine/classes/ElggMenuBuilder.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/engine/classes/ElggMenuBuilder.php b/engine/classes/ElggMenuBuilder.php index 198018f3c..26b0de734 100644 --- a/engine/classes/ElggMenuBuilder.php +++ b/engine/classes/ElggMenuBuilder.php @@ -128,8 +128,11 @@ class ElggMenuBuilder { $parent_name = $menu_item->getParentName(); if (array_key_exists($parent_name, $current_gen)) { $next_gen[$menu_item->getName()] = $menu_item; - $current_gen[$parent_name]->addChild($menu_item); - $menu_item->setParent($current_gen[$parent_name]); + $data = $current_gen[$parent_name]->getData(); + if (!in_array($menu_item, $current_gen[$parent_name]->getData('children'))) { + $current_gen[$parent_name]->addChild($menu_item); + $menu_item->setParent($current_gen[$parent_name]); + } unset($children[$index]); } } -- cgit v1.2.3