mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-34785 performance improvement with big list of courses
This commit is contained in:
parent
a31e811563
commit
a9881c1750
1 changed files with 11 additions and 2 deletions
|
@ -31,8 +31,17 @@
|
|||
function block_course_overview_get_overviews($courses) {
|
||||
$htmlarray = array();
|
||||
if ($modules = get_plugin_list_with_function('mod', 'print_overview')) {
|
||||
foreach ($modules as $fname) {
|
||||
$fname($courses,$htmlarray);
|
||||
// Split courses list into batches with no more than MAX_MODINFO_CACHE_SIZE courses in one batch.
|
||||
// Otherwise we exceed the cache limit in get_fast_modinfo() and rebuild it too often.
|
||||
if (defined('MAX_MODINFO_CACHE_SIZE') && MAX_MODINFO_CACHE_SIZE > 0 && count($courses) > MAX_MODINFO_CACHE_SIZE) {
|
||||
$batches = array_chunk($courses, MAX_MODINFO_CACHE_SIZE, true);
|
||||
} else {
|
||||
$batches = array($courses);
|
||||
}
|
||||
foreach ($batches as $courses) {
|
||||
foreach ($modules as $fname) {
|
||||
$fname($courses, $htmlarray);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $htmlarray;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue