Exemplo n.º 1
0
 /**
  * Add elements
  *
  * @param \SKCMS\CoreBundle\Entity\MenuElement $elements
  * @return Menu
  */
 public function addElement(\SKCMS\CoreBundle\Entity\MenuElement $elements)
 {
     $this->elements[] = $elements;
     $elements->setMenu($this);
     die('elements added');
     return $this;
 }
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;
 }
Exemplo n.º 3
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.º 4
0
 /**
  * Add children
  *
  * @param \SKCMS\CoreBundle\Entity\MenuElement $children
  * @return MenuElement
  */
 public function addChild(\SKCMS\CoreBundle\Entity\MenuElement $children)
 {
     $this->children[] = $children;
     $children->setParent($this);
     return $this;
 }