Exemplo n.º 1
0
 private function menuEntitiesToArray(MenuElement $menu)
 {
     $toReturn = [];
     foreach ($menu->getChildren() as $children) {
         $toReturn[$children->getPosition()]['name'] = $children->getName();
         $toReturn[$children->getPosition()]['targetId'] = $children->getEntityId();
         $toReturn[$children->getPosition()]['elementId'] = $children->getId();
         $toReturn[$children->getPosition()]['entityClass'] = $children->getEntityClass();
         $toReturn[$children->getPosition()]['position'] = $children->getPosition();
         if (count($children->getChildren())) {
             $toReturn[$children->getPosition()]['children'] = $this->menuEntitiesToArray($children);
         }
     }
     return $toReturn;
 }
Exemplo n.º 2
0
 private function getMenuTargetEntities(\SKCMS\CoreBundle\Entity\MenuElement $menu, \Symfony\Component\Routing\Router $router, $multilingue = true)
 {
     if ($menu->getEntityId() != null) {
         $repo = $this->em->getRepository($menu->getEntityClass());
         //            $repo->setDefaultLocale($this->locale);
         $targetEntity = $repo->find($menu->getEntityId(), $this->locale);
         $targetEntity->setTranslatableLocale($this->locale);
         $this->em->refresh($targetEntity);
         if (null !== $targetEntity) {
             //                 //dump($router->generate('skcms_front_page_multilingue', ['id'=>$targetEntity->getId(),'slug'=>$targetEntity->getSlug(),'_locale'=>$this->locale]));
             //                 //dump($targetEntity->getSlug());
             $menu->setTargetEntity($targetEntity);
             if ($targetEntity instanceof SKBasePage) {
                 if ($multilingue) {
                     $path = $targetEntity->getSlug() == 'home' ? $router->generate('skcms_front_home_multilingue', ['_locale' => $this->locale]) : $router->generate('skcms_front_page_multilingue', ['slug' => $targetEntity->getSlug(), '_locale' => $this->locale]);
                     $menu->setLink($path);
                 } else {
                     $path = $targetEntity->getSlug() == 'home' ? $router->generate('skcms_front_home') : $router->generate('skcms_front_page', ['slug' => $targetEntity->getSlug()]);
                     $menu->setLink($path);
                 }
             } else {
                 if ($multilingue) {
                     $menu->setLink($router->generate('skcms_front_entity_multilingue', ['slug' => $targetEntity->getSlug(), '_locale' => $this->locale, '_format' => 'html']));
                 } else {
                     $menu->setLink($router->generate('skcms_front_entity', ['slug' => $targetEntity->getSlug(), '_format' => 'html']));
                 }
             }
         }
     }
     foreach ($menu->getChildren() as $child) {
         $child = $this->getMenuTargetEntities($child, $router, $multilingue);
     }
     return $menu;
 }