mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00
MDL-55231 core_course: Partial course cache rebuild
This commit is contained in:
parent
e5894c0455
commit
9a900492bc
15 changed files with 406 additions and 177 deletions
|
@ -2833,14 +2833,23 @@ function lti_update_type($type, $config) {
|
|||
}
|
||||
require_once($CFG->libdir.'/modinfolib.php');
|
||||
if ($clearcache) {
|
||||
$sql = "SELECT DISTINCT course
|
||||
FROM {lti}
|
||||
WHERE typeid = ?";
|
||||
$sql = "SELECT cm.id, cm.course
|
||||
FROM {course_modules} cm
|
||||
JOIN {modules} m ON cm.module = m.id
|
||||
JOIN {lti} l ON l.course = cm.course
|
||||
WHERE m.name = :name AND l.typeid = :typeid";
|
||||
|
||||
$courses = $DB->get_fieldset_sql($sql, array($type->id));
|
||||
$rs = $DB->get_recordset_sql($sql, ['name' => 'lti', 'typeid' => $type->id]);
|
||||
|
||||
foreach ($courses as $courseid) {
|
||||
rebuild_course_cache($courseid, true);
|
||||
$courseids = [];
|
||||
foreach ($rs as $record) {
|
||||
$courseids[] = $record->course;
|
||||
course_purge_module_cache($record);
|
||||
}
|
||||
$rs->close();
|
||||
$courseids = array_unique($courseids);
|
||||
foreach ($courseids as $courseid) {
|
||||
rebuild_course_cache($courseid, false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue