Exemplo n.º 1
0
 /**
  * @param VirtualBusinessPage $page
  * @param BusinessTemplate    $businessTemplate
  * @param array               $businessProperties
  * @param EntityManager       $em
  * @param                     $entity
  *
  * @throws IdentifierNotDefinedException
  * @throws \Exception
  *
  * @return VirtualBusinessPage
  */
 private function populatePage(VirtualBusinessPage $page, BusinessTemplate $businessTemplate, array $businessProperties, EntityManager $em, $entity)
 {
     $pageName = $businessTemplate->getName();
     $pageSlug = $businessTemplate->getSlug();
     $page->setSlug($pageSlug);
     $page->setName($pageName);
     $pageUrl = $this->urlBuilder->buildUrl($page);
     //parse the business properties
     foreach ($businessProperties as $businessProperty) {
         $pageUrl = $this->parameterConverter->setBusinessPropertyInstance($pageUrl, $businessProperty, $entity);
         $pageSlug = $this->parameterConverter->setBusinessPropertyInstance($pageSlug, $businessProperty, $entity);
         $pageName = $this->parameterConverter->setBusinessPropertyInstance($pageName, $businessProperty, $entity);
     }
     //Check that all twig variables in pattern url was removed for it's generated BusinessPage
     preg_match_all('/\\{\\%\\s*([^\\%\\}]*)\\s*\\%\\}|\\{\\{\\s*([^\\}\\}]*)\\s*\\}\\}/i', $pageUrl, $matches);
     if (count($matches[2])) {
         throw new IdentifierNotDefinedException($matches[2]);
     }
     $page->setUrl($pageUrl);
     $page->setSlug($pageSlug);
     $page->setName($pageName);
     $page->setReference($this->viewReferenceBuilder->buildViewReference($page, $em));
     return $page;
 }