Ejemplo n.º 1
0
 /**
  * @return WebViewInterface[]
  */
 public function buildViewsReferences()
 {
     $viewsHierarchy = $this->entityManager->getRepository('VictoireCoreBundle:View')->getRootNodes();
     $views = $this->viewReferenceProvider->getReferencableViews($viewsHierarchy, $this->entityManager);
     $this->viewReferenceHelper->buildViewReferenceRecursively($views, $this->entityManager);
     return $views;
 }
Ejemplo n.º 2
0
 /**
  * This method return a ViewReference for a View.
  *
  * @param View $view
  *
  * @throws \Exception
  *
  * @return ViewReference
  */
 public function findReferenceByView(View $view)
 {
     $referenceId = ViewReferenceHelper::generateViewReferenceId($view);
     $reference = $this->getOneReferenceByParameters(['id' => $referenceId], false);
     $transformer = $this->transformer->getViewReferenceTransformer((string) $reference['viewNamespace'], 'array');
     return $transformer->transform($reference);
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function buildReference(View $view, EntityManager $em)
 {
     $referenceId = ViewReferenceHelper::generateViewReferenceId($view);
     $viewReference = new ViewReference();
     $viewReference->setId($referenceId);
     $viewReference->setLocale($view->getLocale());
     $viewReference->setName($view->getName());
     $viewReference->setViewId($view->getId());
     $viewReference->setSlug($view->getSlug());
     $viewReference->setViewNamespace($em->getClassMetadata(get_class($view))->name);
     return $viewReference;
 }
Ejemplo n.º 4
0
 public function findBusinessPages($tree)
 {
     $businessPages = [];
     foreach ($tree as $view) {
         if ($view instanceof BusinessPage) {
             $businessPages[ViewReferenceHelper::generateViewReferenceId($view, $view->getBusinessEntity())] = $view;
         }
         if ($view->hasChildren()) {
             self::findBusinessPages($view->getChildren());
         }
     }
     return $businessPages;
 }
 /**
  * @param BusinessPage  $businessPage
  * @param EntityManager $em
  *
  * @return BusinessPageReference|ViewReference
  */
 public function buildReference(View $businessPage, EntityManager $em)
 {
     $referenceId = ViewReferenceHelper::generateViewReferenceId($businessPage);
     $businessPageReference = new BusinessPageReference();
     $businessPageReference->setId($referenceId);
     $businessPageReference->setLocale($businessPage->getLocale());
     $businessPageReference->setName($businessPage->getName());
     $businessPageReference->setViewId($businessPage->getId());
     $businessPageReference->setTemplateId($businessPage->getTemplate()->getId());
     $businessPageReference->setSlug($businessPage->getStaticUrl() != '' ? $businessPage->getStaticUrl() : $businessPage->getSlug());
     $businessPageReference->setEntityId($businessPage->getBusinessEntity()->getId());
     $businessPageReference->setEntityNamespace($em->getClassMetadata(get_class($businessPage->getBusinessEntity()))->name);
     $businessPageReference->setViewNamespace($em->getClassMetadata(get_class($businessPage))->name);
     return $businessPageReference;
 }
Ejemplo n.º 6
0
 /**
  * {@inheritdoc}
  */
 public function buildReference(View $view, EntityManager $em)
 {
     /* @var Page $view */
     $referenceId = ViewReferenceHelper::generateViewReferenceId($view);
     $viewReference = new ViewReference();
     $viewReference->setId($referenceId);
     $viewReference->setLocale($view->getCurrentLocale());
     $viewReference->setName($view->getName());
     $viewReference->setViewId($view->getId());
     $viewReference->setSlug($view->isHomepage() ? '' : $view->getSlug());
     $viewReference->setViewNamespace(ClassUtils::getClass($view));
     if ($parent = $view->getParent()) {
         $parent->translate($view->getCurrentLocale());
         $viewReference->setParent(ViewReferenceHelper::generateViewReferenceId($parent));
     }
     return $viewReference;
 }
 /**
  * @param array $parameters
  *
  * @return ViewReference[]|\SimpleXMLElement[]
  */
 public function getReferencesByParameters($parameters, $transform = true, $keepChildren = false)
 {
     $viewsReferences = [];
     /** @var \SimpleXmlElement[] $xmlReferences */
     if ($xmlReferences = $this->driver->readCache()->xpath(ViewReferenceHelper::buildXpath($parameters))) {
         foreach ($xmlReferences as $reference) {
             if ($transform === true) {
                 $transformViewReferenceFn = function ($parentViewReference) use(&$transformViewReferenceFn, $keepChildren) {
                     $transformer = ViewReferenceXmlCacheRepository::findTransformerFromXmlElement($parentViewReference);
                     $reference = $transformer->transform($parentViewReference);
                     if ($keepChildren) {
                         foreach ($parentViewReference->children() as $child) {
                             $reference->addChild($transformViewReferenceFn($child));
                         }
                     }
                     return $reference;
                 };
                 $reference = $transformViewReferenceFn($reference);
             }
             $viewsReferences[] = $reference;
         }
     }
     return $viewsReferences;
 }