diff --git a/contentbank/classes/contentbank.php b/contentbank/classes/contentbank.php
index 43976a6263c..41c78bcd657 100644
--- a/contentbank/classes/contentbank.php
+++ b/contentbank/classes/contentbank.php
@@ -14,14 +14,6 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see .
-/**
- * Content bank class
- *
- * @package core_contentbank
- * @copyright 2020 Amaia Anabitarte
- * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
-
namespace core_contentbank;
use core_plugin_manager;
@@ -246,8 +238,11 @@ class contentbank {
$courses = $coursescache->get($userid);
if ($categories === false || $courses === false) {
+ // Required fields for preloading the context record.
+ $contextfields = 'ctxid, ctxpath, ctxdepth, ctxlevel, ctxinstance, ctxlocked';
+
list($categories, $courses) = get_user_capability_contexts($capability, true, $userid, true,
- 'fullname, ctxlevel, ctxinstance, ctxid', 'name, ctxlevel, ctxinstance, ctxid', 'fullname', 'name');
+ "fullname, {$contextfields}", "name, {$contextfields}", 'fullname', 'name');
$categoriescache->set($userid, $categories);
$coursescache->set($userid, $courses);
}
diff --git a/contentbank/classes/output/bankcontent.php b/contentbank/classes/output/bankcontent.php
index 79f7bb2bb8c..54d5437a6fd 100644
--- a/contentbank/classes/output/bankcontent.php
+++ b/contentbank/classes/output/bankcontent.php
@@ -16,8 +16,8 @@
namespace core_contentbank\output;
-use context_course;
-use context_coursecat;
+use core\context\{course, coursecat};
+use core\context_helper;
use core_contentbank\content;
use core_contentbank\contentbank;
use renderable;
@@ -133,8 +133,9 @@ class bankcontent implements renderable, templatable {
}
$options = [];
foreach ($this->allowedcategories as $allowedcategory) {
+ context_helper::preload_from_record(clone $allowedcategory);
$options[$allowedcategory->ctxid] = format_string($allowedcategory->name, true, [
- 'context' => context_coursecat::instance($allowedcategory->ctxinstance),
+ 'context' => coursecat::instance($allowedcategory->ctxinstance),
]);
}
if (!empty($options)) {
@@ -144,8 +145,9 @@ class bankcontent implements renderable, templatable {
foreach ($this->allowedcourses as $allowedcourse) {
// Don't add the frontpage course to the list.
if ($allowedcourse->id != $SITE->id) {
+ context_helper::preload_from_record(clone $allowedcourse);
$options[$allowedcourse->ctxid] = format_string($allowedcourse->fullname, true, [
- 'context' => context_course::instance($allowedcourse->ctxinstance),
+ 'context' => course::instance($allowedcourse->ctxinstance),
]);
}
}