Esempio n. 1
0
 public function flat($filter = 'default')
 {
     $result = [];
     foreach ($this->all($filter) as $node) {
         foreach (Helper::flatify($node) as $flatted) {
             $result[] = $flatted;
         }
     }
     return $result;
 }
Esempio n. 2
0
 protected function getPageList($page)
 {
     $list = array();
     $this->addFirstPageListEntry($list);
     $treeModel = $this->createTreeModel($page);
     foreach (Helper::flatify($treeModel->tree()) as $page) {
         $list[$page->getIdentifier()] = $page->menu_title;
     }
     return $list;
 }
Esempio n. 3
0
 public function delete(Node $node, $deleteChildNodes = TRUE)
 {
     if (!$deleteChildNodes) {
         throw new DomainException('Non-recursive delete is not supported right now');
     }
     $subtree = $this->get($node->__get($this->pkCol()), $node->__get($this->rootCol()));
     $byDepth = array();
     foreach (Helper::flatify($subtree) as $deleteNode) {
         if (!isset($byDepth[$deleteNode->getDepth()])) {
             $byDepth[$deleteNode->getDepth()] = array();
         }
         $byDepth[$deleteNode->getDepth()][] = $deleteNode;
     }
     krsort($byDepth, SORT_NUMERIC);
     foreach ($byDepth as $depth => $depthNodes) {
         foreach ($depthNodes as $deleteNode) {
             $deleteNode->delete();
         }
     }
     return $this;
 }