/** * @param MenuPresenceInterface $presence * @return array */ protected function transformPresenceForApi(MenuPresenceInterface $presence) { $response = ['id' => $presence->id(), 'type' => $presence->type(), 'label' => $this->makeLabelForPresence($presence), 'image' => $presence->image(), 'action' => $this->makeLinkForPresence($presence), 'parameters' => $presence->parameters(), 'permissions' => $presence->permissions(), 'children' => []]; if ($presence->children() && count($presence->children())) { $response['children'] = $this->transformPresencesForApi($presence->children()); } return $response; }
/** * Returns whether a presence instance should be kept separate from the normal menu structure. * * @param MenuPresenceInterface $presence * @return bool */ protected function isMenuPresenceAlternative(MenuPresenceInterface $presence) { return $presence->type() !== MenuPresenceType::ACTION && $presence->type() !== MenuPresenceType::GROUP && $presence->type() !== MenuPresenceType::LINK; }