public function flat($filter = 'default') { $result = []; foreach ($this->all($filter) as $node) { foreach (Helper::flatify($node) as $flatted) { $result[] = $flatted; } } return $result; }
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; }
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; }