/**
* Reorders menu item and adds an add button
*
* @param \ElggMenuItem $item menu item
* @param int $depth depth of the menu item
*
* @return \ElggMenuItem
*/
private static function orderMenuItem(\ElggMenuItem $item, $depth)
{
$depth = (int) $depth;
$children = $item->getChildren();
if (empty($children)) {
return $item;
}
// sort children
$ordered_children = [];
foreach ($children as $child) {
$child = self::orderMenuItem($child, $depth + 1);
$child_priority = $child->getPriority();
while (array_key_exists($child_priority, $ordered_children)) {
$child_priority++;
}
$ordered_children[$child_priority] = $child;
}
ksort($ordered_children);
$item->setChildren($ordered_children);
return $item;
}