/** * Given an ID of an instance of this module, * this function will permanently delete the instance * and any data that depends on it. * * @global object * @param int $id quora instance id * @return bool success */ function quora_delete_instance($id) { global $DB; if (!($quora = $DB->get_record('quora', array('id' => $id)))) { return false; } if (!($cm = get_coursemodule_from_instance('quora', $quora->id))) { return false; } if (!($course = $DB->get_record('course', array('id' => $cm->course)))) { return false; } $context = context_module::instance($cm->id); // now get rid of all files $fs = get_file_storage(); $fs->delete_area_files($context->id); $result = true; // Delete digest and subscription preferences. $DB->delete_records('quora_digests', array('quora' => $quora->id)); $DB->delete_records('quora_subscriptions', array('quora' => $quora->id)); $DB->delete_records('quora_discussion_subs', array('quora' => $quora->id)); if ($discussions = $DB->get_records('quora_discussions', array('quora' => $quora->id))) { foreach ($discussions as $discussion) { if (!quora_delete_discussion($discussion, true, $course, $cm, $quora)) { $result = false; } } } quora_tp_delete_read_records(-1, -1, -1, $quora->id); if (!$DB->delete_records('quora', array('id' => $quora->id))) { $result = false; } quora_grade_item_delete($quora); return $result; }
$timepassed = time() - $post->created; if ($timepassed > $CFG->maxeditingtime && !has_capability('mod/quora:deleteanypost', $modcontext)) { print_error("cannotdeletepost", "quora", quora_go_back_to("discuss.php?d={$post->discussion}")); } if ($post->totalscore) { notice(get_string('couldnotdeleteratings', 'rating'), quora_go_back_to("discuss.php?d={$post->discussion}")); } else { if ($replycount && !has_capability('mod/quora:deleteanypost', $modcontext)) { print_error("couldnotdeletereplies", "quora", quora_go_back_to("discuss.php?d={$post->discussion}")); } else { if (!$post->parent) { // post is a discussion topic as well, so delete discussion if ($quora->type == 'single') { notice("Sorry, but you are not allowed to delete that discussion!", quora_go_back_to("discuss.php?d={$post->discussion}")); } quora_delete_discussion($discussion, false, $course, $cm, $quora); $params = array('objectid' => $discussion->id, 'context' => $modcontext, 'other' => array('quoraid' => $quora->id)); $event = \mod_quora\event\discussion_deleted::create($params); $event->add_record_snapshot('quora_discussions', $discussion); $event->trigger(); redirect("view.php?f={$discussion->quora}"); } else { if (quora_delete_post($post, has_capability('mod/quora:deleteanypost', $modcontext), $course, $cm, $quora)) { if ($quora->type == 'single') { // Single discussion quoras are an exception. We show // the quora itself since it only has one discussion // thread. $discussionurl = "view.php?f={$quora->id}"; } else { $discussionurl = "discuss.php?d={$post->discussion}"; }