public function getAttachedParent($presenter, $parentTreeNodeId) { $pageManager = $presenter->pageManagerService; if ($parentTreeNodeId === 0) { return $presenter['pages']; } else { if ($pageManager->pageExists($parentTreeNodeId)) { // !! searching without ghosts and without timeZones $params = array('treeNodeId' => $parentTreeNodeId, 'lang' => $this->_lang); return $pageManager->getPage($params); } else { // parent is not connected and parent is not root // connected parent is needed $row = $presenter->pageModel->loadParent($parentTreeNodeId); // dump($row); // die(); $parent = new CMSPage($this->context, $parentTreeNodeId); $parent->setAsBubbleLoaded(); $superParent = $this->getAttachedParent($presenter, $row['parent']); $superParent->addComponent($parent, 'page' . $parent->treeNodeId); $pageManager->indexPage($parent); return $parent; } } }