public function onDelete(GWF_Page $page, $do_cleanup = true) { # History is per page basis, and can be deleted easily. if (false === GWF_PageHistory::onDelete($page)) { return GWF_Error::err('ERR_DATABASE', array(__FILE__, __LINE__)); } # if (false === GWF_PageTagMap::onDelete($page)) { return GWF_Error::err('ERR_DATABASE', array(__FILE__, __LINE__)); } # Last of them? $num_trans = $page->selectVar('COUNT(*)', "page_otherid={$oid}"); if ($num_trans === 1) { if (false === GWF_PageGID::onDelete($page)) { return GWF_Error::err('ERR_DATABASE', array(__FILE__, __LINE__)); } } elseif ($page->isRoot()) { if (!$this->newRoot($page)) { return GWF_Error::err('ERR_DATABASE', array(__FILE__, __LINE__)); } } if (false === $page->delete()) { return GWF_Error::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if ($do_cleanup) { if (false === $this->onDeleteCleanup()) { return GWF_Error::err('ERR_DATABASE', array(__FILE__, __LINE__)); } } GWF_Website::addDefaultOutput($this->module->message('msg_deleted')); return true; }