commit 0c3f9501084b8a395f898b8869ae2d33e366de49 Author: ANKIT GUPTA Date: Tue Mar 27 16:07:30 2012 +0530 Fixed MDL-27841 uses of delete_record(s) within one condition. diff --git a/lib/completion/data_object.php b/lib/completion/data_object.php index 01345ee..35c4aaf 100755 --- a/lib/completion/data_object.php +++ b/lib/completion/data_object.php @@ -234,13 +234,10 @@ abstract class data_object { $data = $this->get_record_data(); - if ($DB->delete_records($this->table, array('id'=>$this->id))) { - $this->notify_changed(true); - return true; + $DB->delete_records($this->table, array('id'=>$this->id)); - } else { - return false; - } + $this->notify_changed(true); + return true; } /** @@ -339,4 +336,4 @@ abstract class data_object { */ public function notify_changed($deleted) { } -} \ No newline at end of file +} diff --git a/lib/grade/grade_object.php b/lib/grade/grade_object.php index 5c7e6ad..39d4192 100755 --- a/lib/grade/grade_object.php +++ b/lib/grade/grade_object.php @@ -270,23 +270,19 @@ abstract class grade_object { $data = $this->get_record_data(); - if ($DB->delete_records($this->table, array('id'=>$this->id))) { - if (empty($CFG->disablegradehistory)) { - unset($data->id); - unset($data->timecreated); - $data->action = GRADE_HISTORY_DELETE; - $data->oldid = $this->id; - $data->source = $source; - $data->timemodified = time(); - $data->loggeduser = $USER->id; - $DB->insert_record($this->table.'_history', $data); - } - $this->notify_changed(true); - return true; - - } else { - return false; + $DB->delete_records($this->table, array('id'=>$this->id)); + if (empty($CFG->disablegradehistory)) { + unset($data->id); + unset($data->timecreated); + $data->action = GRADE_HISTORY_DELETE; + $data->oldid = $this->id; + $data->source = $source; + $data->timemodified = time(); + $data->loggeduser = $USER->id; + $DB->insert_record($this->table.'_history', $data); } + $this->notify_changed(true); + return true; } /** diff --git a/lib/gradelib.php b/lib/gradelib.php index 8de67cf..e66d265 100755 --- a/lib/gradelib.php +++ b/lib/gradelib.php @@ -1371,9 +1371,8 @@ function grade_cron() { $histlifetime = $now - ($CFG->gradehistorylifetime * 3600 * 24); $tables = array('grade_outcomes_history', 'grade_categories_history', 'grade_items_history', 'grade_grades_history', 'scale_history'); foreach ($tables as $table) { - if ($DB->delete_records_select($table, "timemodified < ?", array($histlifetime))) { - mtrace(" Deleted old grade history records from '$table'"); - } + $DB->delete_records_select($table, "timemodified < ?", array($histlifetime)) + mtrace(" Deleted old grade history records from '$table'"); } } } diff --git a/lib/questionlib.php b/lib/questionlib.php index adcbaf6..817355d 100755 --- a/lib/questionlib.php +++ b/lib/questionlib.php @@ -446,9 +446,8 @@ function question_delete_course_category($category, $newcategory, $feedback=true } // Now delete the category. - if (!$DB->delete_records('question_categories', array('id'=>$category->id))) { - return false; - } + $DB->delete_records('question_categories', array('id'=>$category->id)); + $feedbackdata[] = array($category->name, $strcatdeleted); } // End loop over categories. diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index 12fcf56..68cf50e 100755 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -505,8 +505,6 @@ class assignment_base { $assignment->courseid = $assignment->course; - $result = true; - // now get rid of all files $fs = get_file_storage(); if ($cm = get_coursemodule_from_instance('assignment', $assignment->id)) { @@ -514,22 +512,15 @@ class assignment_base { $fs->delete_area_files($context->id); } - if (! $DB->delete_records('assignment_submissions', array('assignment'=>$assignment->id))) { - $result = false; - } - - if (! $DB->delete_records('event', array('modulename'=>'assignment', 'instance'=>$assignment->id))) { - $result = false; - } + $DB->delete_records('assignment_submissions', array('assignment'=>$assignment->id)); + $DB->delete_records('event', array('modulename'=>'assignment', 'instance'=>$assignment->id)); + $DB->delete_records('assignment', array('id'=>$assignment->id)); - if (! $DB->delete_records('assignment', array('id'=>$assignment->id))) { - $result = false; - } $mod = $DB->get_field('modules','id',array('name'=>'assignment')); assignment_grade_item_delete($assignment); - return $result; + return true; } /** diff --git a/mod/chat/lib.php b/mod/chat/lib.php index ba6b622..2f6615b 100755 --- a/mod/chat/lib.php +++ b/mod/chat/lib.php @@ -179,28 +179,15 @@ function chat_delete_instance($id) { return false; } - $result = true; - // Delete any dependent records here - if (! $DB->delete_records('chat', array('id'=>$chat->id))) { - $result = false; - } - if (! $DB->delete_records('chat_messages', array('chatid'=>$chat->id))) { - $result = false; - } - if (! $DB->delete_records('chat_messages_current', array('chatid'=>$chat->id))) { - $result = false; - } - if (! $DB->delete_records('chat_users', array('chatid'=>$chat->id))) { - $result = false; - } + $DB->delete_records('chat', array('id'=>$chat->id)); + $DB->delete_records('chat_messages', array('chatid'=>$chat->id)); + $DB->delete_records('chat_messages_current', array('chatid'=>$chat->id)); + $DB->delete_records('chat_users', array('chatid'=>$chat->id)); + $DB->delete_records('event', array('modulename'=>'chat', 'instance'=>$chat->id)); - if (! $DB->delete_records('event', array('modulename'=>'chat', 'instance'=>$chat->id))) { - $result = false; - } - - return $result; + return true; } /** diff --git a/mod/choice/lib.php b/mod/choice/lib.php index 576bb27..a2eb77e 100755 --- a/mod/choice/lib.php +++ b/mod/choice/lib.php @@ -570,21 +570,11 @@ function choice_delete_instance($id) { return false; } - $result = true; + $DB->delete_records("choice_answers", array("choiceid"=>"$choice->id")); + $DB->delete_records("choice_options", array("choiceid"=>"$choice->id")); + $DB->delete_records("choice", array("id"=>"$choice->id")); - if (! $DB->delete_records("choice_answers", array("choiceid"=>"$choice->id"))) { - $result = false; - } - - if (! $DB->delete_records("choice_options", array("choiceid"=>"$choice->id"))) { - $result = false; - } - - if (! $DB->delete_records("choice", array("id"=>"$choice->id"))) { - $result = false; - } - - return $result; + return true; } /** diff --git a/mod/feedback/unmapcourse.php b/mod/feedback/unmapcourse.php index 34b7849..cbed9f7 100755 --- a/mod/feedback/unmapcourse.php +++ b/mod/feedback/unmapcourse.php @@ -55,10 +55,8 @@ require_capability('mod/feedback:mapcourse', $context); // cleanup all lost entries after deleting courses or feedbacks feedback_clean_up_sitecourse_map(); -if ($DB->delete_records('feedback_sitecourse_map', array('id'=>$cmapid))) { - $mapurl = new moodle_url('/mod/feedback/mapcourse.php', array('id'=>$id)); - redirect ($mapurl->out(false)); -} else { - print_error('cannotunmap', 'feedback'); -} +$DB->delete_records('feedback_sitecourse_map', array('id'=>$cmapid)); + +$mapurl = new moodle_url('/mod/feedback/mapcourse.php', array('id'=>$id)); +redirect ($mapurl->out(false)); diff --git a/mod/forum/lib.php b/mod/forum/lib.php index eb78a14..f96fb5a 100755 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -1,4 +1,4 @@ -delete_records('forum_subscriptions', array('forum'=>$forum->id))) { - $result = false; - } + $DB->delete_records('forum_subscriptions', array('forum'=>$forum->id)); forum_tp_delete_read_records(-1, -1, -1, $forum->id); - if (!$DB->delete_records('forum', array('id'=>$forum->id))) { - $result = false; - } + $DB->delete_records('forum', array('id'=>$forum->id)); forum_grade_item_delete($forum); @@ -4392,9 +4388,7 @@ function forum_delete_discussion($discussion, $fulldelete, $course, $cm, $forum) forum_tp_delete_read_records(-1, -1, $discussion->id); - if (!$DB->delete_records("forum_discussions", array("id"=>$discussion->id))) { - $result = false; - } + $DB->delete_records("forum_discussions", array("id"=>$discussion->id)); // Update completion state if we are tracking completion based on number of posts // But don't bother when deleting whole thing @@ -4458,27 +4452,25 @@ function forum_delete_post($post, $children, $course, $cm, $forum, $skipcompleti $fs->delete_area_files($context->id, 'mod_forum', 'attachment', $post->id); $fs->delete_area_files($context->id, 'mod_forum', 'post', $post->id); - if ($DB->delete_records("forum_posts", array("id" => $post->id))) { + $DB->delete_records("forum_posts", array("id" => $post->id)); - forum_tp_delete_read_records(-1, $post->id); + forum_tp_delete_read_records(-1, $post->id); // Just in case we are deleting the last post - forum_discussion_update_last_post($post->discussion); + forum_discussion_update_last_post($post->discussion); - // Update completion state if we are tracking completion based on number of posts - // But don't bother when deleting whole thing + // Update completion state if we are tracking completion based on number of posts + // But don't bother when deleting whole thing - if (!$skipcompletion) { - $completion = new completion_info($course); - if ($completion->is_enabled($cm) == COMPLETION_TRACKING_AUTOMATIC && - ($forum->completiondiscussions || $forum->completionreplies || $forum->completionposts)) { - $completion->update_state($cm, COMPLETION_INCOMPLETE, $post->userid); - } + if (!$skipcompletion) { + $completion = new completion_info($course); + if ($completion->is_enabled($cm) == COMPLETION_TRACKING_AUTOMATIC && + ($forum->completiondiscussions || $forum->completionreplies || $forum->completionposts)) { + $completion->update_state($cm, COMPLETION_INCOMPLETE, $post->userid); } - - return true; } - return false; + + return true; } /** @@ -6983,7 +6975,9 @@ function forum_reset_userdata($data) { $DB->delete_records_select('forum_queue', "discussionid IN ($discussionssql)", $params); // all posts - initial posts must be kept in single simple discussion forums - $DB->delete_records_select('forum_posts', "discussion IN ($discussionssql) AND parent <> 0", $params); // first all children + $DB->delete_records_select('forum_posts', "discussion IN ($discussionssql) AND parent <> 0", $params); + + // first all children $DB->delete_records_select('forum_posts', "discussion IN ($discussionssql AND f.type <> 'single') AND parent = 0", $params); // now the initial posts for non single simple // finally all discussions except single simple forums diff --git a/mod/label/lib.php b/mod/label/lib.php index 2430d17..f63265e 100755 --- a/mod/label/lib.php +++ b/mod/label/lib.php @@ -101,13 +101,9 @@ function label_delete_instance($id) { return false; } - $result = true; + $DB->delete_records("label", array("id"=>$label->id)); - if (! $DB->delete_records("label", array("id"=>$label->id))) { - $result = false; - } - - return $result; + return true; } /** diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index 15b7b44..24c696b 100755 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -262,44 +262,18 @@ function scorm_delete_instance($id) { $result = true; // Delete any dependent records - if (! $DB->delete_records('scorm_scoes_track', array('scormid'=>$scorm->id))) { - $result = false; - } + $DB->delete_records('scorm_scoes_track', array('scormid'=>$scorm->id)); + if ($scoes = $DB->get_records('scorm_scoes', array('scorm'=>$scorm->id))) { foreach ($scoes as $sco) { - if (! $DB->delete_records('scorm_scoes_data', array('scoid'=>$sco->id))) { - $result = false; - } + $DB->delete_records('scorm_scoes_data', array('scoid'=>$sco->id)); } $DB->delete_records('scorm_scoes', array('scorm'=>$scorm->id)); } else { $result = false; } - if (! $DB->delete_records('scorm', array('id'=>$scorm->id))) { - $result = false; - } - /*if (! $DB->delete_records('scorm_sequencing_controlmode', array('scormid'=>$scorm->id))) { - $result = false; - } - if (! $DB->delete_records('scorm_sequencing_rolluprules', array('scormid'=>$scorm->id))) { - $result = false; - } - if (! $DB->delete_records('scorm_sequencing_rolluprule', array('scormid'=>$scorm->id))) { - $result = false; - } - if (! $DB->delete_records('scorm_sequencing_rollupruleconditions', array('scormid'=>$scorm->id))) { - $result = false; - } - if (! $DB->delete_records('scorm_sequencing_rolluprulecondition', array('scormid'=>$scorm->id))) { - $result = false; - } - if (! $DB->delete_records('scorm_sequencing_rulecondition', array('scormid'=>$scorm->id))) { - $result = false; - } - if (! $DB->delete_records('scorm_sequencing_ruleconditions', array('scormid'=>$scorm->id))) { - $result = false; - }*/ + $DB->delete_records('scorm', array('id'=>$scorm->id)); scorm_grade_item_delete($scorm); diff --git a/mod/survey/lib.php b/mod/survey/lib.php index 3af83e4..c0d20a1 100755 --- a/mod/survey/lib.php +++ b/mod/survey/lib.php @@ -121,21 +121,11 @@ function survey_delete_instance($id) { return false; } - $result = true; + $DB->delete_records("survey_analysis", array("survey"=>$survey->id)); + $DB->delete_records("survey_answers", array("survey"=>$survey->id)); + $DB->delete_records("survey", array("id"=>$survey->id)); - if (! $DB->delete_records("survey_analysis", array("survey"=>$survey->id))) { - $result = false; - } - - if (! $DB->delete_records("survey_answers", array("survey"=>$survey->id))) { - $result = false; - } - - if (! $DB->delete_records("survey", array("id"=>$survey->id))) { - $result = false; - } - - return $result; + return true; } /** diff --git a/mod/wiki/lib.php b/mod/wiki/lib.php index 9dbd3f1..7dabb08 100755 --- a/mod/wiki/lib.php +++ b/mod/wiki/lib.php @@ -91,54 +91,38 @@ function wiki_delete_instance($id) { return false; } - $result = true; - # Get subwiki information # $subwikis = $DB->get_records('wiki_subwikis', array('wikiid' => $wiki->id)); foreach ($subwikis as $subwiki) { # Get existing links, and delete them # - if (!$DB->delete_records('wiki_links', array('subwikiid' => $subwiki->id), IGNORE_MISSING)) { - $result = false; - } + $DB->delete_records('wiki_links', array('subwikiid' => $subwiki->id), IGNORE_MISSING); # Get existing pages # if ($pages = $DB->get_records('wiki_pages', array('subwikiid' => $subwiki->id))) { foreach ($pages as $page) { # Get locks, and delete them # - if (!$DB->delete_records('wiki_locks', array('pageid' => $page->id), IGNORE_MISSING)) { - $result = false; - } + $DB->delete_records('wiki_locks', array('pageid' => $page->id), IGNORE_MISSING); # Get versions, and delete them # - if (!$DB->delete_records('wiki_versions', array('pageid' => $page->id), IGNORE_MISSING)) { - $result = false; - } + $DB->delete_records('wiki_versions', array('pageid' => $page->id), IGNORE_MISSING); } # Delete pages # - if (!$DB->delete_records('wiki_pages', array('subwikiid' => $subwiki->id), IGNORE_MISSING)) { - $result = false; - } + $DB->delete_records('wiki_pages', array('subwikiid' => $subwiki->id), IGNORE_MISSING); } # Get existing synonyms, and delete them # - if (!$DB->delete_records('wiki_synonyms', array('subwikiid' => $subwiki->id), IGNORE_MISSING)) { - $result = false; - } + $DB->delete_records('wiki_synonyms', array('subwikiid' => $subwiki->id), IGNORE_MISSING); # Delete any subwikis # - if (!$DB->delete_records('wiki_subwikis', array('id' => $subwiki->id), IGNORE_MISSING)) { - $result = false; - } + $DB->delete_records('wiki_subwikis', array('id' => $subwiki->id), IGNORE_MISSING); } # Delete any dependent records here # - if (!$DB->delete_records('wiki', array('id' => $wiki->id))) { - $result = false; - } + $DB->delete_records('wiki', array('id' => $wiki->id)); - return $result; + return true; } function wiki_reset_userdata($data) { diff --git a/tag/lib.php b/tag/lib.php index cdbe37f..65751a9 100755 --- a/tag/lib.php +++ b/tag/lib.php @@ -599,7 +599,6 @@ function tag_delete($tagids) { $tagids = array($tagids); } - $success = true; $context = get_context_instance(CONTEXT_SYSTEM); foreach ($tagids as $tagid) { if (is_null($tagid)) { // can happen if tag doesn't exists @@ -608,18 +607,19 @@ function tag_delete($tagids) { // only delete the main entry if there were no problems deleting all the // instances - that (and the fact we won't often delete lots of tags) // is the reason for not using $DB->delete_records_select() - if ($DB->delete_records('tag_instance', array('tagid'=>$tagid)) && $DB->delete_records('tag_correlation', array('tagid' => $tagid))) { - $success &= (bool) $DB->delete_records('tag', array('id'=>$tagid)); - // Delete all files associated with this tag - $fs = get_file_storage(); - $files = $fs->get_area_files($context->id, 'tag', 'description', $tagid); - foreach ($files as $file) { - $file->delete(); - } + $DB->delete_records('tag_instance', array('tagid'=>$tagid)); + $DB->delete_records('tag_correlation', array('tagid' => $tagid)); + $DB->delete_records('tag', array('id'=>$tagid)); + + // Delete all files associated with this tag + $fs = get_file_storage(); + $files = $fs->get_area_files($context->id, 'tag', 'description', $tagid); + foreach ($files as $file) { + $file->delete(); } } - return $success; + return true; } /** @@ -636,18 +636,15 @@ function tag_delete($tagids) { function tag_delete_instance($record_type, $record_id, $tagid) { global $CFG, $DB; - if ($DB->delete_records('tag_instance', array('tagid'=>$tagid, 'itemtype'=>$record_type, 'itemid'=>$record_id))) { - if (!$DB->record_exists_sql("SELECT * ". - "FROM {tag} tg ". - "WHERE tg.id = ? AND ( tg.tagtype = 'official' OR ". - "EXISTS (SELECT 1 - FROM {tag_instance} ti - WHERE ti.tagid = ?) )", - array($tagid, $tagid))) { - return tag_delete($tagid); - } - } else { - return false; + $DB->delete_records('tag_instance', array('tagid'=>$tagid, 'itemtype'=>$record_type, 'itemid'=>$record_id)); + if (!$DB->record_exists_sql("SELECT * ". + "FROM {tag} tg ". + "WHERE tg.id = ? AND ( tg.tagtype = 'official' OR ". + "EXISTS (SELECT 1 + FROM {tag_instance} ti + WHERE ti.tagid = ?) )", + array($tagid, $tagid))) { + return tag_delete($tagid); } return true; diff --git a/user/profile/definelib.php b/user/profile/definelib.php index de8f6ba..fe63042 100755 --- a/user/profile/definelib.php +++ b/user/profile/definelib.php @@ -284,9 +284,7 @@ function profile_delete_field($id) { global $DB; /// Remove any user data associated with this field - if (!$DB->delete_records('user_info_data', array('fieldid'=>$id))) { - print_error('cannotdeletecustomfield'); - } + $DB->delete_records('user_info_data', array('fieldid'=>$id)); /// Try to remove the record from the database $DB->delete_records('user_info_field', array('id'=>$id));