/** * Completely removes a page and all of his children, including the * stored page objects. * * @param integer $pageId Page to be removed from the tree. */ public function removePage($pageId) { // Before removing the page, let's remove its children. $children = $this->getPageChildren($pageId); if (count($children) > 0) { foreach ($children as $child) { $this->removePage($child); } } // Get page module and page type. $pageInfo = Page::getModulePageFromId($pageId); if ($pageInfo === false) { return false; } // Delete page from the database. $page = new Page($pageInfo['module'], $pageInfo['page'], $pageId); $deleted = $page->deleteContent(false); if (!$deleted) { return false; } // Delete page from the pages tree. return $this->dataAccess->execute('DELETE FROM innomedia_pages_tree ' . 'WHERE page_id=' . $pageId); }