function questionnaire_delete_instance($id) { global $DB, $CFG; require_once $CFG->dirroot . '/mod/questionnaire/locallib.php'; if (!($questionnaire = $DB->get_record('questionnaire', array('id' => $id)))) { return false; } $result = true; if (!$DB->delete_records('questionnaire', array('id' => $questionnaire->id))) { $result = false; } if ($survey = $DB->get_record('questionnaire_survey', array('id' => $questionnaire->sid))) { // If this survey is owned by this course, delete all of the survey records and responses. if ($survey->owner == $questionnaire->course) { $result = $result && questionnaire_delete_survey($questionnaire->sid, $questionnaire->id); } } if ($events = $DB->get_records('event', array("modulename" => 'questionnaire', "instance" => $questionnaire->id))) { foreach ($events as $event) { delete_event($event->id); } } return $result; }
function questionnaire_cleanup() { global $DB; // Find surveys that don't have questionnaires associated with them. $sql = 'SELECT qs.* FROM {questionnaire_survey} qs ' . 'LEFT JOIN {questionnaire} q ON q.sid = qs.id ' . 'WHERE q.sid IS NULL'; if ($surveys = $DB->get_records_sql($sql)) { foreach ($surveys as $survey) { questionnaire_delete_survey($survey->id, 0); } } // Find deleted questions and remove them from database (with their associated choices, etc.). return true; }