/** * delete learning module and all related data * * this method has been tested on may 9th 2004 * meta data, content object data, data directory, bib items * learning module tree and pages have been deleted correctly as desired * * @access public * @return boolean true if all object data were removed; false if only a references were removed */ function delete() { global $ilDB; global $ilBench; // always call parent delete function first!! if (!parent::delete()) { return false; } // delete lm object data include_once "./Modules/LearningModule/classes/class.ilLMObject.php"; ilLMObject::_deleteAllObjectData($this); // delete meta data of content object $this->deleteMetaData(); // delete bibitem data $nested = new ilNestedSetXML(); $nested->init($this->getId(), "bib"); $nested->deleteAllDBData(); // delete learning module tree $this->lm_tree->removeTree($this->lm_tree->getTreeId()); // delete data directory ilUtil::delDir($this->getDataDirectory()); // delete content object record $q = "DELETE FROM content_object WHERE id = " . $ilDB->quote($this->getId(), "integer"); $ilDB->manipulate($q); // delete lm menu entries $q = "DELETE FROM lm_menu WHERE lm_id = " . $ilDB->quote($this->getId(), "integer"); $ilDB->manipulate($q); // remove auto glossary entries $ilDB->manipulate("DELETE FROM lm_glossaries WHERE " . " lm_id = " . $ilDB->quote($this->getId(), "integer")); return true; }