From f5e6bcf026674a70c0504e3505d0390d88e37a30 Mon Sep 17 00:00:00 2001 From: Jake Dallimore Date: Fri, 27 Sep 2019 09:23:27 +0800 Subject: [PATCH] MDL-66075 mod_forum: reduce DB reads in forum settings generation Instead of fetching the DB record AND then fetching it again (as part of the vault->get_from_id() call, just use the legacy data mapper and remove the DB call. --- mod/forum/lib.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mod/forum/lib.php b/mod/forum/lib.php index f1f13f87076..684170187a5 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -5235,15 +5235,16 @@ function forum_get_extra_capabilities() { function forum_extend_settings_navigation(settings_navigation $settingsnav, navigation_node $forumnode) { global $USER, $PAGE, $CFG, $DB, $OUTPUT; - $forumobject = $DB->get_record("forum", array("id" => $PAGE->cm->instance)); if (empty($PAGE->cm->context)) { $PAGE->cm->context = context_module::instance($PAGE->cm->instance); } $vaultfactory = mod_forum\local\container::get_vault_factory(); $managerfactory = mod_forum\local\container::get_manager_factory(); + $legacydatamapperfactory = mod_forum\local\container::get_legacy_data_mapper_factory(); $forumvault = $vaultfactory->get_forum_vault(); - $forumentity = $forumvault->get_from_id($forumobject->id); + $forumentity = $forumvault->get_from_id($PAGE->cm->instance); + $forumobject = $legacydatamapperfactory->get_forum_data_mapper()->to_legacy_object($forumentity); $params = $PAGE->url->params(); if (!empty($params['d'])) {