Elgg\Menu\Service::combineMenus PHP Method

combineMenus() public method

Unprepared menus will be built separately, then combined, with items reassigned to sections named after their origin menu. The returned menu must be prepared before display.
public combineMenus ( array $names = [], array $params = [], string $new_name = '' ) : UnpreparedMenu
$names array Menu names
$params array Menu params
$new_name string Combined menu name (used for the prepare hook)
return UnpreparedMenu
    function combineMenus(array $names = [], array $params = [], $new_name = '')
    {
        if (!$new_name) {
            $new_name = implode('__', $names);
        }
        $all_items = [];
        foreach ($names as $name) {
            $items = $this->getMenu($name, $params)->getItems();
            foreach ($items as $item) {
                $section = $item->getSection();
                if ($section == 'default') {
                    $item->setSection($name);
                }
                $item->setData('menu_name', $name);
                $all_items[] = $item;
            }
        }
        $params['name'] = $new_name;
        return new UnpreparedMenu($params, $all_items);
    }