builder = $builder; } /** * Returns a data representation of the main menus * @return array */ public function getMenuData() { if ( $this->menuData === null ) { $this->menuData = $this->buildMenu(); } return $this->menuData; } /** * Build the menu data array that can be passed to views/javascript * @return array */ private function buildMenu() { $menuData = [ 'groups' => [], 'sitelinks' => $this->builder->getSiteLinks()->getEntries() ]; foreach ( $this->builder->getGroups() as $group ) { if ( $group->hasEntries() ) { $menuData['groups'][] = $group->getEntries(); } } return $menuData; } }