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), ]); } }