public function getNewInstance() { /** @var $new Menu */ $new = parent::getNewInstance(); $new->setParentDocument($this->getModelManager()->find(null, $this->menuRoot)); return $new; }
/** * {@inheritDoc} */ public function buildBreadcrumbs($action, MenuItemInterface $menu = null) { $menuNodeNode = parent::buildBreadcrumbs($action, $menu); if ($action != 'edit' || !$this->recursiveBreadcrumbs) { return $menuNodeNode; } $parentDoc = $this->getSubject()->getParentDocument(); $pool = $this->getConfigurationPool(); $parentAdmin = $pool->getAdminByClass(ClassUtils::getClass($parentDoc)); if (null === $parentAdmin) { return $menuNodeNode; } $parentAdmin->setSubject($parentDoc); $parentEditNode = $parentAdmin->buildBreadcrumbs($action, $menu); if ($parentAdmin->isGranted('EDIT' && $parentAdmin->hasRoute('edit'))) { $parentEditNode->setUri($parentAdmin->generateUrl('edit', array('id' => $this->getUrlsafeIdentifier($parentDoc)))); } $menuNodeNode->setParent(null); $current = $parentEditNode->addChild($menuNodeNode); return $current; }