/** * @param HasPageTemplateInterface $page The page * * @return PageTemplateConfiguration */ public function findOrCreateFor(HasPageTemplateInterface $page) { $pageTemplateConfiguration = $this->repo->findFor($page); if (null === $pageTemplateConfiguration) { $pageTemplates = $this->reader->getPageTemplates($page); $names = array_keys($pageTemplates); $defaultPageTemplate = $pageTemplates[$names[0]]; $pageTemplateConfiguration = new PageTemplateConfiguration(); $pageTemplateConfiguration->setPageId($page->getId()); $pageTemplateConfiguration->setPageEntityName(ClassLookup::getClass($page)); $pageTemplateConfiguration->setPageTemplate($defaultPageTemplate->getName()); } return $pageTemplateConfiguration; }
/** * @param HasPageTemplateInterface $page * @param Request $request * @param EntityManagerInterface $em * @param PagePartAdminFactory $pagePartAdminFactory * @param PageTemplateConfigurationReaderInterface $templateReader * @param PagePartConfigurationReaderInterface $pagePartReader * @param PageTemplateConfigurationService $pageTemplateConfiguratiorService */ public function __construct(HasPageTemplateInterface $page, Request $request, EntityManagerInterface $em, PagePartAdminFactory $pagePartAdminFactory, PageTemplateConfigurationReaderInterface $templateReader, PagePartConfigurationReaderInterface $pagePartReader, PageTemplateConfigurationService $pageTemplateConfiguratiorService) { parent::__construct(); $this->page = $page; $this->em = $em; $this->request = $request; $this->pagePartAdminFactory = $pagePartAdminFactory; $this->pageTemplates = $templateReader->getPageTemplates($page); $this->pagePartAdminConfigurations = $pagePartReader->getPagePartAdminConfigurators($page); $this->pageTemplateConfiguration = $pageTemplateConfiguratiorService->findOrCreateFor($page); foreach ($this->getPageTemplate()->getRows() as $row) { foreach ($row->getRegions() as $region) { $this->processRegion($region); } } }