function wiki_delete_instance($id) { /// Given an ID of an instance of this module, /// this function will permanently delete the instance /// and any data that depends on it. global $CFG; if (!($wiki = get_record("wiki", "id", $id))) { return false; } $result = true; #Delete Files ### Should probably check regardless of this setting in case its been changed... if ($wiki->ewikiacceptbinary) { if ($basedir = $CFG->dataroot . "/" . $wiki->course . "/" . $CFG->moddata . "/wiki/{$id}") { if ($files = get_directory_list($basedir)) { foreach ($files as $file) { #if ($file != $exception) { unlink("{$basedir}/{$file}"); notify("Existing file '{$file}' has been deleted!"); #} } } #if (!$exception) { // Delete directory as well, if empty wiki_rmdir("{$basedir}"); #} } } # Delete any dependent records here # if (!delete_records("wiki_locks", "wikiid", $wiki->id)) { $result = false; } if (!delete_records("wiki", "id", $wiki->id)) { $result = false; } /// Delete all wiki_entries and wiki_pages. if (($wiki_entries = wiki_get_entries($wiki)) !== false) { foreach ($wiki_entries as $wiki_entry) { if (!delete_records("wiki_pages", "wiki", "{$wiki_entry->id}")) { $result = false; } if (!delete_records("wiki_entries", "id", "{$wiki_entry->id}")) { $result = false; } } } return $result; }
/** * Given an ID of an instance of this module, * this function will permanently delete the instance * and any data that depends on it. * * @global stdObject * @global object * @param int $id * @return bool */ function wiki_delete_instance($id) { global $CFG, $DB, $OUTPUT; if (!($wiki = $DB->get_record("wiki", array("id" => $id)))) { return false; } $result = true; #Delete Files ### Should probably check regardless of this setting in case its been changed... if ($wiki->ewikiacceptbinary) { if ($basedir = $CFG->dataroot . "/" . $wiki->course . "/" . $CFG->moddata . "/wiki/{$id}") { if ($files = get_directory_list($basedir)) { foreach ($files as $file) { #if ($file != $exception) { unlink("{$basedir}/{$file}"); echo $OUTPUT->notification("Existing file '{$file}' has been deleted!"); #} } } #if (!$exception) { // Delete directory as well, if empty wiki_rmdir("{$basedir}"); #} } } # Delete any dependent records here # if (!$DB->delete_records("wiki_locks", array("wikiid" => $wiki->id))) { $result = false; } if (!$DB->delete_records("wiki", array("id" => $wiki->id))) { $result = false; } /// Delete all wiki_entries and wiki_pages. if (($wiki_entries = wiki_get_entries($wiki)) !== false) { foreach ($wiki_entries as $wiki_entry) { if (!$DB->delete_records("wiki_pages", array("wiki" => $wiki_entry->id))) { $result = false; } if (!$DB->delete_records("wiki_entries", array("id" => $wiki_entry->id))) { $result = false; } } } return $result; }