This is reserved for the \ElggMenuBuilder.
public getChildren ( ) : ElggMenuItem[] | ||
return | ElggMenuItem[] |
/** * 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; }
/** * Adds a toggle link for use in responsive * * @param \ElggMenuItem $item */ function theme_haarlem_add_toggle_link(\ElggMenuItem &$item) { $children = $item->getChildren(); if (empty($children)) { return; } $item->setText($item->getText() . elgg_view_icon('angle-right', 'elgg-menu-site-toggle')); foreach ($children as $child) { theme_haarlem_add_toggle_link($child); } }
/** * Reorders menu item and adds an add button * * @param ElggMenuItem $item menu item * @param int $depth depth of the menu item * * @return ElggMenuItem */ function menu_builder_order_menu_item(ElggMenuItem $item, $depth) { $depth = (int) $depth; if ($children = $item->getChildren()) { // sort children $ordered_children = array(); foreach ($children as $child) { $child = menu_builder_order_menu_item($child, $depth + 1); $child_priority = $child->getPriority(); while (array_key_exists($child_priority, $ordered_children)) { $child_priority++; } $ordered_children[$child_priority] = $child; if (isset($_SESSION["menu_builder_edit_mode"]) && $depth < 5) { // add button $child_add = ElggMenuItem::factory(array("name" => 'menu_builder_add', "text" => elgg_view_icon("round-plus"), "href" => '/menu_builder/edit?parent_guid=' . $child->getName(), "class" => "menu_builder_add_link", "title" => elgg_echo("menu_builder:edit_mode:add"))); $child->addChild($child_add); } } ksort($ordered_children); $item->setChildren($ordered_children); } return $item; }