Details
Description
The delete function doesn't always properly clear cache after deletion.
Was doing a small test for deleting course based on id with a csv.
<?php
|
// Require config and userlib.
|
require_once('config.php'); |
require_once($CFG->dirroot."/user/lib.php"); |
require_once($CFG->dirroot."/course/externallib.php"); |
require_once($CFG->dirroot."/course/lib.php"); |
|
// Set values for deleting users.
|
$coursetable = 'course'; |
$coursesfile = fopen('test.csv', 'r'); |
|
// Get courses.
|
$courses = []; |
|
while (!feof($coursesfile) ) { |
$courses[] = fgetcsv($coursesfile); |
}
|
fclose($coursesfile); |
|
$list = ''; |
foreach ($courses as $course) { $list .= $course[0].', '; } |
$select ="id NOT IN (". $list ."1)"; |
$courses_delete = $DB->get_records_select($coursetable, $select); |
|
foreach ($courses_delete as $course) { |
delete_course($course); |
}
|
Run this code two times once with 2 course then a second time with 2 different courses.
It'll cause the following error:
Exception - Argument 1 passed to course_in_list::__construct() must be an instance of stdClass, null given, called in [dirroot]\lib\coursecatlib.php on line 1559
|
After awhile cache will be cleared and the problem solves itself, but this shouldn't be happening in the first place.