/** * @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; }
/** * 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); }
/** * {@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; }
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; }
/** * {@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; }