protected function recursiveBuildArrayWithoutId(TreeBase $item)
 {
     $ret = [];
     if ($item->hasChildren()) {
         foreach ($item->getChildren() as $child) {
             $ret[$child->getTitle() . '.' . $child->getNodeId() . '.' . $child->getSiteId()] = $this->recursiveBuildArrayWithoutId($child);
         }
     }
     return $ret;
 }
Exemplo n.º 2
0
 /**
  * Internal recursion for clone tree
  *
  * @param int $menuId
  * @param TreeBase $item
  * @param TreeBase $parent
  */
 private function cloneTreeRecursion($menuId, TreeBase $item, $parentId = null)
 {
     if ($item->hasChildren()) {
         $previous = null;
         foreach ($item->getChildren() as $child) {
             if ($previous) {
                 $previous = $this->itemStorage->insertAfter($previous, $child->getNodeId(), $child->getTitle(), $child->getDescription());
             } else {
                 if ($parentId) {
                     $previous = $this->itemStorage->insertAsChild($parentId, $child->getNodeId(), $child->getTitle(), $child->getDescription());
                 } else {
                     $previous = $this->itemStorage->insert($menuId, $child->getNodeId(), $child->getTitle(), $child->getDescription());
                 }
             }
             $this->cloneTreeRecursion($menuId, $child, $previous);
         }
     }
 }