/** * Split a menu into sections, and pass it through the "prepare" hook * * @param UnpreparedMenu $menu Menu * * @return Menu */ public function prepareMenu(UnpreparedMenu $menu) { $name = $menu->getName(); $params = $menu->getParams(); $sort_by = $menu->getSortBy(); $builder = new ElggMenuBuilder($menu->getItems()); $params['menu'] = $builder->getMenu($sort_by); $params['selected_item'] = $builder->getSelected(); $params['menu'] = $this->hooks->trigger('prepare', "menu:{$name}", $params, $params['menu']); return new Menu($params); }