/** * @param Request $request * @param int $menuid * @param int $entityId * @return AbstractAdminListConfigurator */ public function getAdminListConfigurator(Request $request, $menuid, $entityId = null) { if (!isset($this->configurator)) { $menu = $this->getDoctrine()->getManager()->getRepository($this->getParameter('kunstmaan_menu.entity.menu.class'))->find($menuid); $rootNode = $this->get('kunstmaan_admin.domain_configuration')->getRootNode(); $configuratorClass = $this->getParameter('kunstmaan_menu.adminlist.menuitem_configurator.class'); $this->configurator = new $configuratorClass($this->getEntityManager(), null, $menu); $adminType = $this->getParameter('kunstmaan_menu.form.menuitem_admintype.class'); $menuItemClass = $this->getParameter('kunstmaan_menu.entity.menuitem.class'); $this->configurator->setAdminType(new $adminType($request->getLocale(), $menu, $entityId, $rootNode, $menuItemClass)); $this->configurator->setAdminTypeOptions(array('menu' => $menu, 'rootNode' => $rootNode, 'menuItemClass' => $menuItemClass, 'entityId' => $entityId, 'locale' => $request->getLocale())); } return $this->configurator; }